socket传输视频使用tcp和udp的优缺点?

rabbitgoat 2009-05-26 04:27:40
最近在做毕业设计,编写一个网络视频传输系统.我使用的协议是tcp,但很多地方说使用udp传视频实时性更好.哪位高人指点一下使用tcp传的原因,最好能讲一下各自的优缺点.谢谢!
...全文
1487 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyh19851025 2010-09-08
  • 打赏
  • 举报
回复
但是qq的音视频数据是不是就是使用tcp传输的呢,因为对方不在线时,无法与对方建立音视频通信,关闭窗口的话音视频数据传输还会被中断
wlw19820619 2010-09-06
  • 打赏
  • 举报
回复
学习了,多谢高手们
l405927571 2009-07-04
  • 打赏
  • 举报
回复
最主要的原因是因为TCP有纠错能力,如果传送的数据包丢失的话要重新要求发送,而视频这东西要求的是实时性,比如实时视频,如果因为途中丢了数据包导致中断了几分之一秒,最重要的不是将它补上而是保证下面播放的实时性,如果为了补上丢失的数据包而导致“停格”显然是不必要的。另外,像OICQ一类的软件使用的就是UDP协议,对于这些软件来说,丢失一两句聊天数据并不重要,重要的是减少服务器的开销以便为更多的客户端服务。
winingsky 2009-05-26
  • 打赏
  • 举报
回复
up
wangpingfang 2009-05-26
  • 打赏
  • 举报
回复
二楼解释不错。
shenxianqiang 2009-05-26
  • 打赏
  • 举报
回复
用TCP做视频传输,恐怕用户会等崩溃的。。。。
用户可以忍受丢帧,但不能忍受长期等待,做视频选择UDP吧!
  • 打赏
  • 举报
回复
udp连接发送数据肯定快很多,因为不需要保证连接可靠等机制。
tcp就不用说了,既要握手,长连接为了安全还要用心跳,要命的是重连还要搞定TIME_WAIT。

各有好处,网上资料N多。
wwoo_1105 2009-05-26
  • 打赏
  • 举报
回复
帮顶
Sou2012 2009-05-26
  • 打赏
  • 举报
回复
一般都是UDP的!
allen303allen 2009-05-26
  • 打赏
  • 举报
回复
如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数和目的端口数也都支持一台主机上的多个应用。一个16位的UDP包包含了一个字节长的头部和数据的长度,校验码域使其可以进行整体校验。(许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。)

很明显,当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。TCP丰富的功能有时会导致不可预料的性能低下,但是也许在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。

楼主可以根据自己情况选择使用TCP和UDP,我以前也做过文件传输,用的UDP发现和TCP传输。不过我的是文件传输而不是视频传输。
chenzhp 2009-05-26
  • 打赏
  • 举报
回复
用UDP协议进行数据传输的优点是不需要建立连接,传输速度快。所以在实时性上好。缺点是容易丢失数据包和数据包的顺序发生混乱。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧