网络
服务端程序,尽量避免主动关闭连接
连接量大的时候,主动关闭大量的连接,会有大量 time_wait此时尽量让 客户端来关闭连接,服务端做半关闭即可(半关闭 写)
另,《为什么 muduo 的 shutdown() 没有直接关闭 TCP 连接? 》提到
用 shutdown 而不用 close 的效果是,如果对方已经发送了数据,这些数据还“在路上”,那么 muduo 不会漏收这些数据
java recv 0 字节
java socket 的recv也类似于C, recv 0 字节 就是连接断开了,
此时应该关闭该连接;
代码:
byte[] headByte = new byte[4];
inputStream.read(headByte);
int bodyLength = Tools.b2i(headByte, 0, 4);
byte[] bodyByte = new byte[bodyLength];
inputStream.read(bodyByte);
rbyte=bodyByte;