织梦搞笑图片网站源码,请问大连谁家做网站,江门发布最新通告,wordpress 支付宝 微信Socket的send函数在执行时报EAGAIN的错误] 内容提要: 当客户通过Socket提供的send函数发送大的数据包时#xff0c;就可能返回一个EGGAIN的错误。该错误产生的原因是由于send 函数中的size变量大小超过了tcp_sendspace的值。tcp_sendspace定义了应用在调用send之前能够在k…Socket的send函数在执行时报EAGAIN的错误] 内容提要: 当客户通过Socket提供的send函数发送大的数据包时就可能返回一个EGGAIN的错误。该错误产生的原因是由于send 函数中的size变量大小超过了tcp_sendspace的值。tcp_sendspace定义了应用在调用send之前能够在kernel中缓存的数据量。当应用程序在socket中设置了O_NDELAY或者O_NONBLOCK属性后如果发送缓存被占满send就会返回EAGAIN的错误。 为了消除该错误有三种方法可以选择 1.调大tcp_sendspace使之大于send中的size参数 ---no -p -o tcp_sendspace65536 2.在调用send前在setsockopt函数中为SNDBUF设置更大的值 3.使用write替代send因为write没有设置O_NDELAY或者O_NONBLOCK