局域网利用TCP协议进行通信,会不会丢包?如果会,一般是什么原因?

babybattle 2006-11-10 04:53:25
之前看到一个很老的讨论“利用TCP协议进行通信,如何才能更可靠,在应用层上再加上一层可靠性,有必要吗?”
连接http://topic.csdn.net/t/20050309/09/3835928.html

看了这个讨论还是觉得不太明白

我的问题是这样的,我在局域网内,同一网段的两台机器间进行数据收发。并且把发送和接受到的buffer都保存在日至里了。

结果就发现有些包确实没有收到。

我的接收端的接收速度可能有点慢,但很多人都说接收速度跟丢包没关系的啊

在此虚心请教...
...全文
499 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
babybattle 2006-11-28
  • 打赏
  • 举报
回复
谢谢大家的热心答复。
前几天回了趟老家一直没能上网。
今天赶紧散分了。大家不要拍我。sorry了。

我觉得(东临碣石)说的是对的。可能是发送没有成功。
但是之所以没成功可能就是接收端接收太慢的原因。
我这几天再好好的试验一下。

socket这个东西还是很讲究的。
Thank you again!
waykim 2006-11-13
  • 打赏
  • 举报
回复
又学到了一点
shenming123 2006-11-13
  • 打赏
  • 举报
回复
只要send 返回成功,对方就能够收到,除非此时刚好连接断开,内部缓冲区的数据还没来得及发送。
leon7909 2006-11-13
  • 打赏
  • 举报
回复
longmencdw() ( ) 信誉:100 Blog 2006-11-12 10:57:38 得分: 0


一个高速发送,一个低速接受,要是接受不及时,缓冲区满,这时后来的会把前面的覆盖掉,造成丢包现象!


==============================================================
你扯個什麼蛋,知之為知之,不知為不知,沒弄明白就不要瞎說.
longmencdw 2006-11-12
  • 打赏
  • 举报
回复
一个高速发送,一个低速接受,要是接受不及时,缓冲区满,这时后来的会把前面的覆盖掉,造成丢包现象!
rtdb 2006-11-11
  • 打赏
  • 举报
回复
发送端要做错误检查。
注意不是你想发送多少就能发送多少的。要处理实际发送字节数。
babybattle 2006-11-11
  • 打赏
  • 举报
回复
哦。那么应该是我程序的问题了。

我的SOCKET设置的是非阻塞的模式。也就是说发送端可以一直发,而接收端在一直收。
如果接收速度人为的控制的很慢的话,比如说1秒钟收一次。就会很容易丢包。

大家帮分析一下。
仰望星空WU 2006-11-10
  • 打赏
  • 举报
回复
但TCP是在不可靠的IP上加入了可靠的数据传输,因此TCP还是不会丢包的
仰望星空WU 2006-11-10
  • 打赏
  • 举报
回复
TCP是不会丢包的。
rtdb 2006-11-10
  • 打赏
  • 举报
回复
如果:

1. 网络硬件正常
2. 你的程序无BUG

那么,TCP是不会丢包的。

4,390

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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