当WebSocket服务端未启动时,我们在客户端申请连接,会报 System.Net.Sockets.SocketException 异常。
当然,我们调试时异常设置默认是不勾选这个的。所以不影响正常调试。
但小伙伴发现,依然会影响界面卡顿,尤其是书写性能受影响。
所以,需要确认判断服务端是否已启动,再让客户端连接服务端,规避掉这个异常。
websocket中没有这样属性,能获取到服务端启动的状态。
看了下webSocket的内部机制,是通过IP+端口TCP进行通信的。所以可以查看端口占用情况来判断:
如上图中,Listening的2710端口是服务端,下面Established表示和服务端已建立连接的2个客户端。
也可以用C#判断端口是否占用:
1 ///
2 /// 判断服务端是否已启动
3 ///
4 ///
5 public static bool CheckServerListening()
6 {
7 var port = ChannelCustomText.Port;
8 IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
9 IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();
10 foreach (IPEndPoint endPoint in ipEndPoints)
11 {
12 if (endPoint.Port == port)
13 {
14 return true;
15 }
16 }
17 return false;
18 }
Original: https://www.cnblogs.com/kybs0/p/16167030.html
Author: 唐宋元明清2188
Title: WebSocket 服务端未启动时,客户端重连报错
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543973/
转载文章受原作者版权保护。转载请注明原作者出处!