1.设置发送逗留时间 socket.setSoLinger(true, 2); 这个参数是socket发送数据时的超时,如果对方在固定时间内不接受,则关闭socket。与socket.setSoTimeout(2000)不 同,这个是设置InputStream上调用 read()阻塞超时时间。
2.socket.setTcpNoDelay(true);关闭Nagle算法。这使得在调用out.flush();时总能第一时间的发送数据包(这个适用于你的数据包是完整的一次性发送的前提)。
------------------------------------------------------------------
正解:
1、setSoLinger的作用完全说错了,这个选项主要是设置socket关闭后的行为,具体请google或者参考unp
2、禁掉nagle算法也不能说总能第一时间发出数据包,只是底层不再帮你组合小的数据包到MSS大小左右再发送,如果你的数据没有小于40个字节,通常不建议关闭这个选项。
2.socket.setTcpNoDelay(true);关闭Nagle算法。这使得在调用out.flush();时总能第一时间的发送数据包(这个适用于你的数据包是完整的一次性发送的前提)。
------------------------------------------------------------------
正解:
1、setSoLinger的作用完全说错了,这个选项主要是设置socket关闭后的行为,具体请google或者参考unp
2、禁掉nagle算法也不能说总能第一时间发出数据包,只是底层不再帮你组合小的数据包到MSS大小左右再发送,如果你的数据没有小于40个字节,通常不建议关闭这个选项。