进程间通信WebSocket 服务端未启动时,客户端重连报错
当WebSocket服务端未启动时,我们在客户端申请连接,会报 System.Net.Sockets.SocketException 异常。
当然,我们调试时异常设置默认是不勾选这个的。所以不影响正常调试。
但小伙伴发现,依然会影响界面卡顿,尤其是书写性能受影响。
所以,需要确认判断服务端是否已启动,再让客户端连接服务端,规避掉这个异常。
websocket中没有这样属性,能获取到服务端启动的状态。
看了下webSocket的内部机制,是通过IP+端口TCP进行通信的。所以可以查看端口占用情况来判断:
如上图中,Listening的2710端口是服务端,下面Established表示和服务端已建立连接的2个客户端。
也可以用C#判断端口是否占用:
1 /// <summary> 2 /// 判断服务端是否已启动 3 /// </summary> 4 /// <returns></returns> 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 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)