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