免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ablelocal
打印 上一主题 下一主题

[函数] 请问linux下几个关于tcp的recv接收函数的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2004-06-23 21:46 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

没有什么太好的方法。如果不给每个socket关联一个buffer的话。

不过我看你的程序已经是C++了,倒是可以考虑。

论坛徽章:
0
22 [报告]
发表于 2004-06-24 16:26 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

还是没看明白你的strlen(flag),你的flag不会是单个‘\n’吧,是一个结尾是‘\n’的字符串吧

论坛徽章:
0
23 [报告]
发表于 2004-06-24 21:06 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

原帖由 "flw" 发表:
你的水平太差,建议先不要搞通讯。
学学编个九九乘法表,可能更加对你有好处。

  高手,我拜你为师了。

论坛徽章:
0
24 [报告]
发表于 2004-06-25 08:49 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

原帖由 "ablelocal" 发表:
1。需要接收数个数据包,不等长,有没有函数或者方法在recv之前就就对套接口的缓存进行分析从而找到数据包之间的中止符?
2。一般套接口的缓存区有多大?

1.我的理解是对于SOCKET而言,没有办法处理接受的数据的长度,接受的长度问题如果从分层的观点来讲,不属于SOCKET层要处理的问题,应用应当约定一个数据包的长度.譬如在发送的包文头增加一定的字节表示包文的长度.象你所说的包文有个中止符,也只能是说应用的双方约定,同时你还要处理包文的内容,以避免包文中出现终止符.我总觉得这不是一个好方法.
2.这个同不同的系统实现有关系.

论坛徽章:
0
25 [报告]
发表于 2004-06-25 08:54 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

TO FLW:总是那么个脾气不改呀,其实你说的方法我觉得未必有道理.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
26 [报告]
发表于 2004-06-25 12:27 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

[quote]原帖由 "menp9999"]TO FLW:总是那么个脾气不改呀,其实你说的方法我觉得未必有道理.[/quote 发表:

你说我哪儿没道理?愿闻高见,说来听听!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
27 [报告]
发表于 2004-06-25 12:29 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

[quote]原帖由 "menp9999"].我总觉得这不是一个好方法.[/quote 发表:

不管是不是好方法,
有些应用确实就是这么定义的。
比如 HTTP 首部。


你先不要说我的方法好不好,
你也不要建议楼主去换别的通讯方式,
你就说说,在楼主的这个要求之下,
你还有什么方法能比我的好一些?

论坛徽章:
0
28 [报告]
发表于 2004-06-25 12:38 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

吵起来了?

大家不要吵,不就是一个技术问题嘛。
对于技术条条大路通罗马。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
29 [报告]
发表于 2004-06-25 12:43 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

原帖由 "step_by_step" 发表:
吵起来了?

大家不要吵,不就是一个技术问题嘛。
对于技术条条大路通罗马。

呵呵,你就浇油吧你!         

就算是没吵也叫你说成是吵了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
30 [报告]
发表于 2004-06-25 13:02 |只看该作者

请问linux下几个关于tcp的recv接收函数的问题

原帖由 "menp9999" 发表:

1.我的理解是对于SOCKET而言,没有办法处理接受的数据的长度,接受的长度问题如果从分层的观点来讲,不属于SOCKET层要处理的问题,应用应当约定一个数据包的长度.譬如在发送的包文头增加一定的字节表示包文的长度.象你?.........


我在外地出差,恰好中午有时间上来看看。

对于楼主的问题,我觉得menp9999已经回答的非常好。TCP层没有提供给一种机制来控制应用程序报文长度,如果发送者发送了多少字节的字符流,那么TCP层可以保证让这种传输尽量的到达目的地,一次传输的数据两取决于缓存区,分节大小,网络环境和操作系统环境。因此,如果应用程序没有一种机制来表明长度的话,接受者只能通过报文中其他的手段来确定数据包是否结束,换句话说,这个问题flw给出的解释是合理的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP