我的问题的重点是询问同时使用TCP和UDP在客户端和服务器之间通信是否被接受。
我正在制作一个实时客户端服务器游戏,需要保证通信的部分(登录等),但其他部分将可以丢失数据包(状态更新等)。因此,我希望使用UDP进行大多数数据通信,但我不希望必须实现自己的框架来确保我的控制通信(登录)得到保证。
那么,最初使用TCP来管理连接,然后在单独的端口上来回发送数据通信包是否合理?
发布于 2011-04-09 03:51:13
您绝对应该这样做(使用TCP和UDP来完成不同的通信任务)。你甚至不需要使用两个不同的端口。One will suffice。您可以在同一端口上侦听这两种不同的协议。
发布于 2011-04-09 03:58:55
这是非常合理的,并且已经在主流中使用。即使在浏览Web时,DNS操作也是基于UDP的,而HTTP连接是基于TCP的。
请记住,您应该认为这两种连接类型是完全独立的,或者采用其他措施来正确处理任何相互依赖关系。TCP连接可能存在操作系统和网络级别的计时问题,而UDP连接可能存在数据包丢失问题。当应用程序的TCP部分停止或UDP数据包丢失时,应采取特定措施来避免死锁和性能问题。
发布于 2011-04-09 03:48:41
它不仅被接受,而且被广泛使用。作为一个很好的例子,BATS Exchange在他们的market data分发系统中使用了这种方法,以实现恢复机制。
https://stackoverflow.com/questions/5600072
复制相似问题