首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一应用程序中使用TCP和UDP有什么问题吗?

在同一应用程序中使用TCP和UDP有什么问题吗?
EN

Stack Overflow用户
提问于 2011-04-09 03:45:56
回答 3查看 2K关注 0票数 5

我的问题的重点是询问同时使用TCP和UDP在客户端和服务器之间通信是否被接受。

我正在制作一个实时客户端服务器游戏,需要保证通信的部分(登录等),但其他部分将可以丢失数据包(状态更新等)。因此,我希望使用UDP进行大多数数据通信,但我不希望必须实现自己的框架来确保我的控制通信(登录)得到保证。

那么,最初使用TCP来管理连接,然后在单独的端口上来回发送数据通信包是否合理?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-09 03:51:13

您绝对应该这样做(使用TCP和UDP来完成不同的通信任务)。你甚至不需要使用两个不同的端口。One will suffice。您可以在同一端口上侦听这两种不同的协议。

票数 5
EN

Stack Overflow用户

发布于 2011-04-09 03:58:55

这是非常合理的,并且已经在主流中使用。即使在浏览Web时,DNS操作也是基于UDP的,而HTTP连接是基于TCP的。

请记住,您应该认为这两种连接类型是完全独立的,或者采用其他措施来正确处理任何相互依赖关系。TCP连接可能存在操作系统和网络级别的计时问题,而UDP连接可能存在数据包丢失问题。当应用程序的TCP部分停止或UDP数据包丢失时,应采取特定措施来避免死锁和性能问题。

票数 2
EN

Stack Overflow用户

发布于 2011-04-09 03:48:41

它不仅被接受,而且被广泛使用。作为一个很好的例子,BATS Exchange在他们的market data分发系统中使用了这种方法,以实现恢复机制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5600072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档