什么是SocketOptionName.ReuseAddress用于?

时间:2010-05-04 08:51:34

标签: .net sockets tcp

我曾经认为使用SocketOptionName.ReuseAddress,我可以重用TIME_WAIT状态的端口。但我试着试验它,似乎没有效果。

如果我使用netstat检查套接字,并且它显示套接字处于TIME_WAIT状态,并且我立即再次运行客户端,则会出现异常:

  

通常只允许使用每个套接字地址(协议/网络地址/端口)172.16.16.16:12345

我无法做出任何改变。请问你能详细说明SocketOptionName.ReuseAddress的用途吗?

1 个答案:

答案 0 :(得分:0)

为什么首先绑定客户端端口?您可能不需要,如果不这样做,那么允许操作系统为您选择一个短暂的端口会更好,然后您就不会遇到这个问题。

其次,为什么你认为重用一个TIME_WAIT的套接字是个好主意;国家存在是有正当理由的......

至于为什么它不适合你,请查看我在回答这个类似问题时发布的链接:When binding a client TCP socket to a specific local port with Winsock, SO_REUSEADDR does not have any effect