1
coolair OP 有人指导下么?!
|
2
ryd994 2016-07-29 20:51:42 +08:00
windows 下不要用这个选项
SO_REUSEADDR 在 windows 下和 linux 下含义不同 windows 下代表该端口被占用后,其他程序依然可以 bind 到这个端口。当两个 SO_REUSEADDR 的 socket 占用同一个端口时,行为是不确定的。 windows 下没有 TIME_WAIT 的问题。 linux 下代表即使另一个程序已经占用该端口,只要地址不同,依然可以 bind 。如果有 TIME_WAIT 的 socket ,也可以 bind (一般不可以)。 参考 http://stackoverflow.com/a/14388707 其实 linux 下也不是非要用这个选项,只要保证总是客户端主动关闭连接即可,因为只有服务端主动关闭连接时,服务端才存在 TIME_WAIT 占用端口的问题 |