以前一直都只用TCP做网络服务器开发,最近接触了些新东西,例如服务器也可以用UDP协议开发。
现在有个想法。
例如,做一个C/S模式的服务器与客户端,服务器端用UDP和TCP协议共同开发,使用UDP协议做客户端登录服务端的模块,
服务端再有TCP实现的TCP服务端。UDP作为客户端登录的网络数据交互通道,还有需要时,用UDP发送指令让客户端连接服务端的TCP服务器,并通过TCP做数据交互,完毕后断开TCP连接。
不知道这个模式相对与纯TCP开发网络服务器怎样,当然,UDP绝对要做好丢包重传机制。
现在有个想法。
例如,做一个C/S模式的服务器与客户端,服务器端用UDP和TCP协议共同开发,使用UDP协议做客户端登录服务端的模块,
服务端再有TCP实现的TCP服务端。UDP作为客户端登录的网络数据交互通道,还有需要时,用UDP发送指令让客户端连接服务端的TCP服务器,并通过TCP做数据交互,完毕后断开TCP连接。
不知道这个模式相对与纯TCP开发网络服务器怎样,当然,UDP绝对要做好丢包重传机制。
解决方案
5
搜“CPP源代码 UDP TCP服务器”
20
还是看使用情况吧。UDP明显的优势就是不占用连接资源,不像TCP那样子有连接上限,所以假如你的登陆服务器爆棚到TCP都耗不起了,udp就体现出优势了。还有就是交互的内容,实时在线的一般还是tcp靠谱,不过仅仅登陆应该无所谓了。但就实际情况来看,本人见过的多数端游服务器还是tcp登陆的,别个也不止一个登陆服务器,基本不是在线瓶颈
5
不需要高可靠性的,可以用UDP。例如视频,音频播放。丢失点数据没关系。
5
当然可以了,看业务需求而定,有时候一个应用可以使用多种通信手段,tcp、udp传输本人的协议,也可以使用标准的,如:ftp、http、smtp/pop等
5
本人现在在用boost::asio