免费注册 查看新帖 |

Chinaunix

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

[函数] 求助,SCO下recv函数接收的数据不全如何处理? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-18 10:09 |只看该作者 |倒序浏览
最近在SCO下写了一段小代码,目的是接收主机返回的帐户的交易明细,开发环境是SCO504,编译工具CC

主机一次能给出的最大的信息长度为6745字节,可是在SCO下用recv函数接收时只能接收到前1380字节。

可是同样的代码在linux+gcc环境下给recv函数加上MSG_WAITALL选项后就能接收到主机给的全部的信息

可是在上面的SCO+cc环境下man了一下recv发现没有MSG_WAITALL选项,而是只有MSG_OOB和MSG_PEEK选项。而无论加哪一个选项都无法接收全主机给出的数据。

请问,在这种情况下我该怎样把主机给出的数据中超出1380字节之后的部分接收到呢?谢谢!!!

论坛徽章:
0
2 [报告]
发表于 2006-03-18 12:00 |只看该作者
man read

论坛徽章:
0
3 [报告]
发表于 2006-03-18 17:23 |只看该作者
循环读

论坛徽章:
0
4 [报告]
发表于 2006-03-18 18:10 |只看该作者
采用tcp还是udp,应该说明一下,看lz是tcp吧,在收发信息时可以在应用层添加数据包长度协议,根据数据包长度循环直到读取到指定的数据长度为止。

论坛徽章:
0
5 [报告]
发表于 2006-03-19 18:19 |只看该作者
循环读啊,tcp是面向流的协议嘛

论坛徽章:
0
6 [报告]
发表于 2006-03-20 13:11 |只看该作者
循环读吧,协议中加长度,这是受ip层数据桢长度的限制
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP