当前位置: 技术问答>linux和unix
linux socket问题
来源: 互联网 发布时间:2016-08-08
本文导语: 我建立一个socket,读写网口的,可是我收数据多块都没事,可是如果快点写就会阻塞,在发不出去数据,这是问什么呀?还有如果很快的写数据,就会阻塞,在发不出数据,这是什么原因啊,我是用write,read读写的,...
我建立一个socket,读写网口的,可是我收数据多块都没事,可是如果快点写就会阻塞,在发不出去数据,这是问什么呀?还有如果很快的写数据,就会阻塞,在发不出数据,这是什么原因啊,我是用write,read读写的,大家帮个忙,解决一下,谢谢,很急
|
写的速度太快,导致SK buffer满了吧?
|
还有这个跟你的带宽有关系
10M带宽你不可能发送数据到几十M甚至百M
UDP联系的相对速度要比TCP的传送速度快的多,但是不可靠
各有利弊
在此基础上你可以更合理的修正你的程序的逻辑结构,更充分利用资源和带宽
|
是不是你带宽不够呀
缓冲区开大点
缓冲区开大点
|
恩,建议看一下你缓冲区大小的设置。。。
|
收发数据的时候用select判断一下是否阻塞比较好
|
可以做个计数器,看看数据到底是阻塞在哪个地方
socket的接收缓冲是有限度的
socket的接收缓冲是有限度的