因为TCP需要知道在连接建立期间的缓冲区大小,所以必须在服务端调用listen之前,客户端调用connect之前进行设置。
客户端:
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char*)&sndbufsz,sizeof(sndbufsz))
connect.....
服务端:
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char*)&on,sizeof(on))
setsocketopt(s,SOL_SOCKET,SO_RCVBUF,(char*)&recvbufz,sizeof(recvbufz))
listen....
应用层的接收缓冲区可以和系统缓冲区长度设置一直尽可能一次读取更多的数据