一个循环不停的发 一个不停的手 - -
都只有一个循环
结果总会丢几个 - -
要是接受的程序 在循环里头做点别的事情。。丢的更多
开始已经 是接受缓冲区的问题。。
已经把缓冲区设置成发送的数据大小了。 。
结果还是丢- -
这啥回事
包都发送过去了- -
都只有一个循环
结果总会丢几个 - -
要是接受的程序 在循环里头做点别的事情。。丢的更多
开始已经 是接受缓冲区的问题。。
已经把缓冲区设置成发送的数据大小了。 。
结果还是丢- -
这啥回事
包都发送过去了- -
解决方案 »
- 想找个VC++高手,带我学习基础的VC++操作
- Debug Assertion Failed!
- 怎样关闭弹出的提示框?
- [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快乐] [新年快
- 这个错误有人遇到吗?
- 谁做过电子邮件系统。关于拆包部分
- Winamp窗口
- catch语句的问题
- SetClassLong 为什么不能改变窗体的背景刷色
- 这个错误表示什么?
- ListCtrl里动太创建非子窗口的ListBox,显示、隐藏ListBox时List很闪,如何避免List重绘?
- (没分了,帮下忙!)如何设置Dialog对话框里一个Edit小控件的字体,并且不影响整个对话框的字体。
一个
for(int i = 0;i<10000;i++)
{
sendto()
}一个
for(int i = 0;i<10000;i++)
{
/*如果这里进行了一些操作 丢包更多*/
recvfrom();
}
for()
{
sendto();
sleep(0);
}
{
sendto()
Sleep(2);
}
把数据组成一个包 投递到接收队列里头。。
然后继续接收
可是如果sendto非常快的话
接收方就会丢包。后来我做个测试 也就是上面的例子。。
发现在for里面发送的话 接收方总会丢包- -
我已经把接收缓冲区设置成 发送数据的大小了。。可是还是丢
晕死。。
刚搞的UDP重传策略 把整个公司的TCP应用全部搞掉线了- -
UDP要么发送成功 要么发送失败
不存在 粘包这个现象
我发送1KB 接收要么是1KB 要么失败
====================================
我觉得显然不是这样的呀,接收和发送,是异步的,当发的比较慢的时候,当然,接收能够跟上,发的快的情况下,接收跟不上,这有什么奇怪的。就算你不要socket,直接内存复制也存在这个问题。
比如说你在一个独立的线程里 建立一个list 每接到一个就push进去。然后再另外的线程 处理list的消息。这就比如说 如果有一个碗(缓冲区) 你倒(send)一次 满了。 再倒一次 原来的被覆盖了,洒出来了。 里面还是一碗。那洒出来的就是丢得包。 现在要做的就是 倒进去之后 再把碗里的水,倒到更大的地方,腾出碗来接水。