免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1904 | 回复: 8
打印 上一主题 下一主题

请问SOCK多包发送的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-08 18:07 |只看该作者 |倒序浏览
客户端连接成功后,按序号不停向SERVER发包,时间一长,会出现SERVER取出的包是不连续的,有些数据包会丢了,就好象SOCK的缓存不够,后发的把前面的包覆盖了.这是什么?这种情况如何处理?

论坛徽章:
0
2 [报告]
发表于 2008-04-08 18:44 |只看该作者
包不连续就重组,丢包就重传;只要取得足够快,缓存不会不够的;至于覆盖,要真能这样,就没人敢用sock了。

这些情况都是正常的,这就是网络编程。

论坛徽章:
0
3 [报告]
发表于 2008-04-08 19:41 |只看该作者

现在问题是SERVER取的不够快

比如CLINET已经发了100个,但SERVER收到包后进行处理,之后再去取包,取出的包会出现"1,2,3,6,7,8,9,12",这样不连续的包.

论坛徽章:
39
2017金鸡报晓
日期:2017-02-08 10:39:4219周年集字徽章-周
日期:2023-04-15 12:02:2715-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:27
4 [报告]
发表于 2008-04-08 20:11 |只看该作者

回复 #3 kmyangyl 的帖子

你说的是传说中的UDP包吗?

论坛徽章:
0
5 [报告]
发表于 2008-04-08 22:24 |只看该作者
自己实现流控

论坛徽章:
0
6 [报告]
发表于 2008-04-09 17:02 |只看该作者
你建立队列不就可以完成这个任务了。。。
不过你socket通信想要把包发完整了 就应该要2次握手。。。发送 +确认    但会拖慢流程速度。最好的是你自己定义协议  尽量将需要发送的数据回合成少数的包再发送

论坛徽章:
0
7 [报告]
发表于 2008-04-09 18:10 |只看该作者
还是TCP吧。

论坛徽章:
0
8 [报告]
发表于 2008-04-09 18:15 |只看该作者

回复 #1 kmyangyl 的帖子

你在用UDP或ipx吧?
用TCP没这个问题!

用UDP或ipx你就要自己写确认重发机制

论坛徽章:
0
9 [报告]
发表于 2008-04-10 23:19 |只看该作者
在stevens的unix网络编程chapter8 section8.13中详细讨论了有关lack of flow control with UDP的问题,可以仔细看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP