【发布时间】:2014-04-03 20:30:24
【问题描述】:
我正在考虑创建一个处理音频/视频/聊天通信的特定应用。 现在矛盾的是,我需要确定要传输的数据(在服务器端到达其他任何地方之前)。除了这个问题之外,我还需要服务器在尝试发送消息时了解客户端的连接性。
那么我是否要在服务器和客户端之间为消息以及需要不断更新的非用户控制数据维护 TCP 连接,并使用 UDP 进行视频/音频通信和下载(有数据丢失/损坏的风险)?
提前致谢。
【问题讨论】:
我正在考虑创建一个处理音频/视频/聊天通信的特定应用。 现在矛盾的是,我需要确定要传输的数据(在服务器端到达其他任何地方之前)。除了这个问题之外,我还需要服务器在尝试发送消息时了解客户端的连接性。
那么我是否要在服务器和客户端之间为消息以及需要不断更新的非用户控制数据维护 TCP 连接,并使用 UDP 进行视频/音频通信和下载(有数据丢失/损坏的风险)?
提前致谢。
【问题讨论】:
您所描述的是一种非常常见的方法。你可以有一个基于 TCP 的“控制”通道,它处理需要 TCP 特性(重传、数据排序等)的数据,以及一个基于 UDP 的“数据”通道,它可能是有损的。
另一种方法是在 UDP 通道上定义您自己的协议来实现重新传输等,但使用控制通道可能最符合您的利益。
【讨论】: