假设我要将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就一定能立刻把数据发送出去?

解决方案 »

  1.   

    http://tech.china.com/zh_cn/netschool/programme/167721/20050831/12617434.html
      

  2.   

    char buff[1024];
    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缓冲区的拷贝。