本文共 1834 字,大约阅读时间需要 6 分钟。
2009-04-17 21:18:00 3.udp没有流量控制,因此发送速度比接收速度快,很容易出现这种情况 三种可能你都看看 排除下 |
2009-04-17 22:06:00 有什么不可能的. |
2009-04-17 22:47:23 本机对本机发送还会不成功吗?对于视频传输来讲,不需要重传机制,做好容错处理就可以了。 |
2009-04-17 23:30:00 靠,不要给我解释tcp udp的原理,我想问包在哪个环节丢了 另外,只能用udp来传输视频数据。 |
2009-04-18 03:06:00 我关心的是谁给丢了?是socket缓冲区满了丢的吗? |
2009-04-18 03:36:00 同意。 |
2009-04-18 04:06:02 UDP不保证可靠。 |
2009-04-18 04:36:34 udp本身是无状态的,无确认的, 用tcp |
2009-04-18 05:10:54 如果两台机器测试,局域网内,通过ethereal看了,包已经发到本地了。 |
2009-04-18 05:36:01 udp一次不能超过512,超过了当然会丢包啊.可以加个较验和,丢包重发. |
2009-04-18 05:55:40 设置socket缓冲区大小可以解决这个问题吗? |
2009-04-18 06:23:04 由于udp协议本身没有自动找包的功能,因此经常会出现丢包的现象,会造成传送的文件丢包的现象 1.你看下发送端是否发送成功 2.你再用抓包工具看看 是否收到了 看下是网络问题 还是你程序问题 |
2009-04-18 06:45:06 使用UDP时,如果缓冲区已满,再发来的包就会丢失。 |
2009-04-18 07:06:00 很正常 我做的项目,采用的是RTP + UDP,丢包是很正常的,如果你用TCP,那么延迟就太大啦,没法看了 还有,网通和电信的接口处最容易丢包 至于丢包的率取决与网络连接状况.包没发过来才导致丢包,和你的接收缓冲区有什么关系啊?呵呵 |
2009-04-18 07:24:38 UDP是无连接的,面向消息的数据传输协议,与TCP相比,有两个致命的缺点,一是数据包容易丢失,二是数据包无序。 要实现文件的可靠传输,就必须在上层对数据丢包和乱序作特殊处理,必须要有要有丢包重发机制和超时机制。 常见的可靠传输算法有模拟TCP协议,重发请求(ARQ)协议,它又可分为连续ARQ协议、选择重发ARQ协议、滑动窗口协议等等。 如果只是小规模程序,也可以自己实现丢包处理,原理基本上就是给文件分块,每个数据包的头部添加一个唯一标识序号的ID值,当接收的包头部ID不是期望中的ID号,则判定丢包,将丢包ID发回服务端,服务器端接到丢包响应则重发丢失的数据包。 模拟TCP协议也相对简单,3次握手的思想对丢包处理很有帮助。 |
2009-04-18 07:42:00 ethereal都看到包过来了,你能说包还没到吗?局域网内两台机器测试。 |
2009-04-18 08:00:00 udp丢包很正常吧 丢包了 你检查到 再请求发丢了那个序号的包就可以了 |
2009-04-18 08:12:00 UDP协议本身就不保证一个发送成功,所以需要重发机制等.. |
2009-04-18 08:27:07 你传输视频 如果是压缩的比较厉害的 那就不Y要用UDP 呀。关于丢包原因 如果在局淤网 则可能是你收的比较慢 如果在公网 那就是 UDP 本身的原因 你找出来也没用 你的解决方式 只能是TCP 或者RTCP 之类 |
2009-04-18 08:48:00 一个原因,就是接收慢了 缓冲区满,丢掉了。 |
2009-04-18 09:03:40 不想丢包,直接用TCP呗。简单。 |
2009-04-18 09:18:00 人品问题? 开玩笑,哈,你说的是有可能的, 没有什么不可能,! |
2009-04-18 09:30:00 UDP是面向无连接的 传输不具有可靠性,丢包是难免的,但应该不会影响到传输 另外1楼说的请求重发是TCP的重传~UDP没有 |
2009-04-18 09:39:37 加大缓冲只能缓解问题,另外还应让程序尽快接收缓冲区中的数据,不过也不能完全避免这个问题。 |
转载地址:http://zauli.baihongyu.com/