diff --git a/Rs.Framework/TcpClientHelper.cs b/Rs.Framework/TcpClientHelper.cs index a9b8652..8f35d85 100644 --- a/Rs.Framework/TcpClientHelper.cs +++ b/Rs.Framework/TcpClientHelper.cs @@ -61,10 +61,13 @@ namespace Rs.Framework { m_Socket.Connect(host, port); m_IsConnected = true; + LogHelper.Debug($"ip:{m_HostName},port:{m_Port} connected"); OnConnected?.Invoke(m_Socket); } catch (Exception) { + Thread.Sleep(3000); + LogHelper.Debug($"ip:{host},port:{port} connect fail,will reconnect"); m_Socket.Close(); m_Socket.Dispose(); m_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); @@ -91,32 +94,31 @@ namespace Rs.Framework { DataRecived?.Invoke(serverSocket, data.Take(len).ToArray()); } - + else if(len <= 0) + { + m_IsConnected = false; + LogHelper.Debug($"ip:{m_HostName},port:{m_Port} disconnected"); + serverSocket.Shutdown(SocketShutdown.Both); + serverSocket.Close(); + serverSocket.Dispose(); + OnDisconnected?.Invoke(m_Socket); + Connect(m_HostName, m_Port);//重新尝试去连接 + return; + } } catch (Exception ex) { + m_IsConnected = false; LogHelper.Debug(ex.Message); //异常退出 if(serverSocket.Connected) { serverSocket.Shutdown(SocketShutdown.Both); } - - serverSocket.Close(); - serverSocket.Dispose(); - Connect(m_HostName,m_Port);//重新尝试去连接 - m_IsConnected = false; - OnDisconnected?.Invoke(m_Socket); - return; - } - if (len <= 0) - { - serverSocket.Shutdown(SocketShutdown.Both); serverSocket.Close(); serverSocket.Dispose(); - m_IsConnected = false; - Connect(m_HostName, m_Port);//重新尝试去连接 OnDisconnected?.Invoke(m_Socket); + Connect(m_HostName,m_Port);//重新尝试去连接 return; } }