WebSocket异常 通常每个套接字地址(协议/网络地址/端口)只允许使用一次

时间:2024-07-27 21:37:38

websocket的实例:http://blog.****.net/for_cxc/article/details/51500185

问题: 新建一个连接通信没有问题,但是如果关闭再建立就会报错:通常每个套接字地址(协议/网络地址/端口)只允许使用一次

解决方案:

源码:

  ;
             ];

             IPEndPoint localEP = new IPEndPoint(IPAddress.Any, port);
             Socket listener = new Socket(localEP.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
             try
             {
                 listener.Bind(localEP);
                 listener.Listen();
                 sc = listener.Accept();//接受一个连接
                 //握手
                 int length = sc.Receive(buffer);//接受客户端握手信息
                 //sc.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                 listener.Close();       //关闭监听,释放端口
                 sc.Send(PackHandShakeData(GetSecKeyAccetp(buffer, length)));

原因是建立连接时候的监听没有关闭,所以端口没有释放。

重点:

listener.Close();       //关闭监听,释放端口