Chinaunix

标题: send函数的阻塞 [打印本页]

作者: heartk    时间: 2003-08-20 08:44
标题: send函数的阻塞
有谁知道在tcp连接正常时send函数什么情况下会阻塞吗
作者: 飞灰橙    时间: 2003-08-20 08:55
标题: send函数的阻塞
网速太慢,活活
作者: abyss    时间: 2003-08-20 09:19
标题: send函数的阻塞
When  the message does not fit into the send buffer of the socket, send normally blocks.
作者: heartk    时间: 2003-08-20 09:33
标题: send函数的阻塞
1、     在局域网中运行,应该不会太慢
2、     我的buf有1024,但只发送125,应该也不是
还有其他原因吗,不过这两种情况下会不会出错,我的程序晚上阻塞了,早上来单步走,能发送出去一条,也没出错,就有塞住了,还有其他原因吗,或者有什么办法可以查一下
作者: heartk    时间: 2003-08-20 14:25
标题: send函数的阻塞
[quote]原帖由 "abyss"]When  the message does not fit into the send buffer of the socket, send normally blocks.[/quote 发表:
   

应该如何知道socket 的剩余缓冲大小?     
好像是socket本身有一个固定大小的缓冲区,每调用一次send(sock,buf,len,0)就占用这个缓冲区的len个字节,如果len加了又加大于了他的长度就会阻塞,我的理解是这样,不知是否是如此?
如果是,我如何加大缓冲区的大小,如何删除其中的内容?
如果不是,那我的send 是怎么阻塞的呢?

老大们,帮帮我!
作者: heartk    时间: 2003-08-20 17:39
标题: send函数的阻塞
老大们,帮帮我!急死了
作者: heartk    时间: 2003-08-21 08:56
标题: send函数的阻塞
没人遇到过这类问题吗
作者: alex_ybb    时间: 2003-08-21 11:14
标题: send函数的阻塞
是不是你发出去了以后接收端就没有读啊,不读的话,发送端是会阻塞的
作者: 只爱红酒    时间: 2003-08-21 13:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: heartk    时间: 2003-08-21 13:15
标题: send函数的阻塞
[quote]原帖由 "只爱红酒"]程序Bug,你有内存溢出错误,你的socket句柄已经丢失了。[/quote 发表:
     

单步走,还能向前进行一步,应该是没丢句柄
不过我的程序是想多个客户端(3个)连续发送,这样是不是一定会塞
作者: 只爱红酒    时间: 2003-08-21 13:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 蓝色键盘    时间: 2003-08-23 17:49
标题: send函数的阻塞
[quote]原帖由 "heartk"]有谁知道在tcp连接正常时send函数什么情况下会阻塞吗[/quote 发表:
     

如果正常。send不返回。阻塞的条件是:

1、对方接受缓冲区满。
2、本地发送缓冲区满。
3、程序设计错误。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2