C# Socket 端口复用

转载:https://www.cnblogs.com/wzd24/archive/2007/05/22/755016.html

不过原作者少定了一句代码,导致本人调试了半天也成功不了

在winsock的实现中,对于服务器的绑定是可以多重绑定的,在确定多重绑定使用谁的时候,根据一条原则是谁的指定最明确则将包递交给谁,而且没有权限之分。这种多重绑定便称之为端口复用。

void Main()
{
    IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 20000);
    
    Socket socket1;
    socket1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    socket1.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
    socket1.Bind(localEP);

    Socket socket2;
    socket2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    socket2.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
    socket2.Bind(localEP);
}

 

posted on 2020-12-12 12:38  空明流光  阅读(870)  评论(0编辑  收藏  举报

导航