我需要采取什么方法(见解释)? TCP或UDP

时间:2014-03-03 00:45:02

标签: .net tcp udp

我正在考虑创建一个处理音频/视频/聊天通信的应用。 现在矛盾的是我需要确定要传输的数据(在服务器端到达其他任何地方之前)。除了这个问题,我还需要服务器在尝试发送消息时了解客户端的连接性。

我是否在服务器和客户端之间维护一个TCP连接,以获取消息以及需要不断更新的非用户控制数据,并使用UDP进行视频/音频通信和下载(冒数据丢失/损坏的风险)?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您所描述的是一种非常常见的方法。您可以在TCP上拥有一个“控制”通道,它可以处理需要TCP(重新传输,数据排序等)功能的数据和UDP上的“数据”通道,这些通道可能是有损的。

另一种方法是在UDP通道上定义您自己的协议,实现重新传输等,但是使用控制通道可能符合您的最佳利益。

答案 1 :(得分:0)

要开始使用,我建议:仅使用TCP(使用两个TCP连接;就像FTP这样做30年)并将TCP缓冲区和帧大小调整为有效的最佳值为了你。如果您(稍后)想要获得几个百分点的性能,您仍然可以切换到UDP(使用您自己的专用协议),并将工作的TCP变体作为后备替代方案,以防有人/某些东西使UDP无法使用。