现在的位置: 首页 > 综合 > 正文

客户端连续发包,服务器丢包?no,可能是缓冲区满了。

2013年10月04日 ⁄ 综合 ⁄ 共 474字 ⁄ 字号 评论关闭

socket发送数据时候先把数据发送到socket缓冲区中,之后接受函数再从缓冲区中取数据,如果发送端特别快的时候,缓冲区很快就被填满(socket默认的是1024×8=8192字节),这时候我们应该根据情况设置缓冲区的大小,可以通过setsockopt函数实现 int setsockopt( SOCKET s, int level, int optname, const char* optval, int optlen ); eg: int optVal = 1024*1024 ; int optLen = sizeof(int); setsockopt(socket, SOL_SOCKET,SO_RCVBUF,(char*)&optVal,optLen ); socket:传输数据的socket SOL_SOCKET:基本套接口 SO_RCVBUF:接受数据的缓冲区 optVal: 缓冲区大小 optLen :指向缓冲区大小变量的长度 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhaozy55555/archive/2008/11/18/3327050.aspx

抱歉!评论已关闭.