日期:2014-05-16  浏览次数:20581 次

socket的发送,接收缓冲区
在服务端,是设置负责监听的socket的缓冲区
setsockopt(serverSocket_, SOL_SOCKET, SO_RCVBUF,
                         cast_sockopt(&tcpRecvBuffer_), sizeof(tcpRecvBuffer_))

还是设置accept之后得到的socket的缓冲区??


有什么区别吗?

望指教。。
------解决方案--------------------
   在以Unix为核心的一些操作系统中,SO_RCVBUF选项决定了TCP窗口的大小,你设置为多少窗口就为多少。对于客户端,SO_RCVBUF选项必须在connect之前设置;对于服务器,SO_RCVBUF选项必须在listen前设置。因为TCP的窗口规模选项是在建立连接时用SYN与对方互换得到的。
   在Windows上可以随时设置,一但设置后,会随着下一个ACK包,或者普通数据包通告给对方最新的TCP窗口大小,需要注意的是此时窗口只能增大,不能减小,也就是说SO_RCVBUF设置的比上一次小的话,该值是不会作为新窗口大小通告给对方的。
(通过百度及总结而来,也顺便学习了下)