|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|