假设我要将socket的接收Buffer大小改变,下面这样对吗?//新的缓冲区改为1024char buff[1024];
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, buff, sizeof(buff) );还是应该这样:
int size=1024;
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, (const char*)&size, sizeof(size) );另外,把输出反冲大小设为0就一定能立刻把数据发送出去?
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, buff, sizeof(buff) );还是应该这样:
int size=1024;
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, (const char*)&size, sizeof(size) );另外,把输出反冲大小设为0就一定能立刻把数据发送出去?
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, buff, sizeof(buff) );
----------------------
这里 sizeof(buff) 的值是1024 明显是不对的。
还是应该这样:
int size=1024;
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, (const char*)&size, sizeof(size) );
--------------------
这个做法是对的。另外,把输出反冲大小设为0就一定能立刻把数据发送出去?
------------------
是的!这样不经历由系统缓冲区到socket缓冲区的拷贝。