socket读写 TCP协议是面向流的,read和write调用的返回值往往小于参数指定的字节数.对于read调用,如果接收缓冲区中有20字节,请求读100个字节,就会返回20.对于write调用,如果请求写100个字节,而发送缓冲区中只有20个字节的空闲位置,那么write会阻塞,直到把100个字节全部交给发送缓冲区才返回.但如果socket文件描述符中有O_NONBLOCK标志,则write不阻塞,直接返回20. 为避免这些情况干扰主程序逻辑,确保读写所请求的字节数,应包装read和writ…