我的问题是询问在客户端和服务器之间使用TCP和UDP通信是否被接受。
我正在制作一个实时客户端服务器游戏,其中部分通信需要保证(登录等),但其他部分可以丢失数据包(状态更新等)。因此,我想在大多数数据通信中使用UDP,但我不想自己实现框架来确保我的控制通信(登录)得到保证。
那么,最初使用TCP管理连接,然后在另一个端口发送数据通信包是否合理?
这种做法在主流中是相当合理且已经被广泛使用。即使在浏览 Web 时,DNS 操作也是基于 UDP,而 HTTP 连接则是基于 TCP。
请记住,您应该将这两种连接类型视为完全独立,或者采取其他措施以正确处理任何相互依赖性。TCP 连接可能存在操作系统和网络级别的定时问题,UDP 连接则有数据包丢失问题。当您的应用程序的 TCP 部分停顿或 UDP 数据包丢失时,您应该采取具体措施以避免死锁和性能问题。