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();       //关闭监听,释放端口

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM