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

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

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

解决方案:

源码:

 1  int port = 1818;
 2             byte[] buffer = new byte[4096];
 3 
 4             IPEndPoint localEP = new IPEndPoint(IPAddress.Any, port);
 5             Socket listener = new Socket(localEP.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
 6             try
 7             {
 8                 listener.Bind(localEP);
 9                 listener.Listen(10);
10                 sc = listener.Accept();//接受一个连接  
11                 //握手  
12                 int length = sc.Receive(buffer);//接受客户端握手信息  
13                 //sc.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
14                 listener.Close();       //关闭监听,释放端口
15                 sc.Send(PackHandShakeData(GetSecKeyAccetp(buffer, length)));

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

重点:

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

 

posted @ 2017-07-27 16:44  XinYiBuFang  阅读(4590)  评论(0)    收藏  举报