当前位置:  开发笔记 > 编程语言 > 正文

要每50毫秒发送一次图像,我应该使用TCP还是UDP?

如何解决《要每50毫秒发送一次图像,我应该使用TCP还是UDP?》经验,为你挑选了1个好方法。

我正在构建一个C#应用程序,使用服务器 - 客户端模型,服务器每50ms通过一个套接字向客户端发送一个图像(100kb)...

我使用的是TCP,但除了这个协议的开销之外,有时客户端最终在套接字上有多个图像.我仍然没有一个聪明的机制来分割每个图像的字节(实际上,我只需要最新的一个).

我尝试使用UDP,但得出的结论是我不能发送100kb图表,只能发送64kb图表.即便如此,我不应该使用超过1500字节; 否则,数据包将沿着网络划分,丢失部分数据包的可能性会更大.

所以现在我有点困惑.我应该继续使用TCP并在每个图像的末尾放置一些转义字节,以便客户端可以将它们分开吗?或者我应该使用UDP,发送1500字节的dgrams并提出订购和恢复机制?

这里的关键目标是快速传输图像.只要客户不断接收新的东西,我不介意在途中丢失一些.

或者我应该使用其他协议?提前致谢!



1> Alnitak..:

您应该考虑使用实时传输协议(也称为RTP).

RTP使用的基础IP协议是UDP,但它具有额外的分层以指示时间戳,序列顺序等.

RTP是VoIP和IP视频系统使用的主要媒体传输协议.如果你找不到协议的现有C#实现,我会感到很惊讶.

此外,如果您的图像文件是JPEG格式,您应该能够生成RTP/MJPEG流.由于某些IP网络摄像头以该格式输出,因此有相当多的视频查看器已经具有接收和显示此类流的本机支持.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有