关于阻塞模式下的send
在大量的数据发送中send函数会返回一个比参数大小小的返回值吗?还是说他只会返回-1或者等于参数大小的返回值?阻塞模式下send,如果是返回-1这时候我可以认为它是断线了还是继续在保持连接呢?如何判断,能通过error判断出来吗? 居然没人回答!!!好伤心啊 不知道怎么回答阿,看看错误码是什么,一切皆有可能。 那在阻塞下会返回比预设值小的返回值吗?回复 3# qianguozheng
楼主这个问题我也想知道
block tcp send,应该需要保证所有的data全部写到tcp sendbuf里面去才返回的,也就是返回data的size
另外返回-1,目前除了EINTR,应该其他都需要close send会返回:
比0大的,但一定不比你要发送的数量大。
或者是 -1
也就是说,你send 100字节,可能返回 -1、1、2... 100
我没见过有返回0(除非你的发送数量为0才有可能返回0)
我看别人博客的时候,又说阻塞模式下返回值只有-1和预设大小值,所以现在很不确定,只有非阻塞模式下才会出现中间值的情况回复 6# codechurch
是啊,这个问题很多人都说阻塞模式下返回值只有-1和预设值,但他们写博客基本都是没做测验的,又不太敢信回复 5# lxyscls
回复 7# 感冒九十九
我非常负责任的告诉你,socket有中间值。
只有文件系统没有中间值。如,写磁盘文件。
thanks回复 9# codechurch
页:
[1]
2