一、什么是端口复用: 二、 其实我们要实现端口复用很 我们来看看这个函数是怎么用的: public void SetSocketOption ( 参数 optionName optionValue 以上参数大家可以去看看MSDN。我这里就不多讲了。 在这里我们optionLevel 参数传SocketOptionLevel.Socket;optionName参数传SocketOptionName.ReuseAddress;optionValue参传一个非零值,我传的是True,如果要禁用的话,就传False。 如: socket2.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); 我们首先建立第一个Socket: Socket socket1; Socket socket2 例程源代码我上传到我的
因为在winsock的实现中,对于
Socket 选项确定当前 Socket 的行为。对于具有 Boolean
SocketOptionLevel optionLevel,
SocketOptionName optionName,
int optionValue
)
optionLevel
SocketOptionLevel 值之一。
SocketOptionName 值之一。
该选项的值。
具体我们看看下面的
IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 20000);
socket1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket1.Bind(localEP);
再建立第二个Socket:
IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 20000);
socket2= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket2.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
//请注意这一句。ReuseAddress选项设置为True将允许将套接字绑定到已在使用中的地址。
socket2.Bind(localEP);
这样Socket1和Socket2便绑定在同一个端口上了。
>> 本文固定链接: http://www.vcgood.com/archives/1959
谢谢