当前位置: 技术问答>linux和unix
linux下socket的send函数阻塞问题?
来源: 互联网 发布时间:2016-04-05
本文导语: 在ubuntu建立一个tcp的client的socket,向tcp的server发送数据,由于server处理速度有限,接收速度小于发送速度,client的send函数就不停的发送数据,丝毫没有阻塞的意思,过一会,机器就好像内存不足的状态,慢慢死机了 ...
在ubuntu建立一个tcp的client的socket,向tcp的server发送数据,由于server处理速度有限,接收速度小于发送速度,client的send函数就不停的发送数据,丝毫没有阻塞的意思,过一会,机器就好像内存不足的状态,慢慢死机了
请问如何将send函数设置为阻塞的,就是当tcp的缓冲区写满时,send函数就不发送,等待tcp的socket发送掉一部分数据再发送并返回?
请问如何将send函数设置为阻塞的,就是当tcp的缓冲区写满时,send函数就不发送,等待tcp的socket发送掉一部分数据再发送并返回?
|
你的问题是应该服务端程序有问题,而不是 阻塞 的问题.
建议你在 send 完以后, 加一个休眠时间, 减缓发送速度.
建议你在 send 完以后, 加一个休眠时间, 减缓发送速度.
|
send 和 recv 默认就是阻塞 的。
|
应该不是send的问题,而是你程序别的地方有内存泄露之类的问题!
Send本身就是阻塞的...
Send本身就是阻塞的...