Tag: robustness

如何正常重新连接到套接字

我有一个以下方法连接到程序启动时的终点 ChannelSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var remoteIpAddress = IPAddress.Parse(ChannelIp); ChannelEndPoint = new IPEndPoint(remoteIpAddress, ChannelPort); ChannelSocket.Connect(ChannelEndPoint); 我还有一个定时器,设置为每60秒触发一次调用CheckConnectivity ,它试图将任意字节数组发送到终点,以确保连接仍然存在,如果发送失败,它将尝试重新连接。 public bool CheckConnectivity(bool isReconnect) { if (ChannelSocket != null) { var blockingState = ChannelSocket.Blocking; try { var tmp = new byte[] { 0 }; ChannelSocket.Blocking = false; ChannelSocket.Send(tmp); } catch (SocketException e) { try { ReconnectChannel(); […]