diff --git a/Source/Framework/Networking/SocketBase.cs b/Source/Framework/Networking/SocketBase.cs index 3a0655154..60729ac9d 100644 --- a/Source/Framework/Networking/SocketBase.cs +++ b/Source/Framework/Networking/SocketBase.cs @@ -119,7 +119,7 @@ namespace Framework.Networking public void CloseSocket() { - if (_socket == null) + if (_socket == null || !_socket.Connected) return; try diff --git a/Source/Game/Server/WorldSession.cs b/Source/Game/Server/WorldSession.cs index 1056367e7..c01f007f2 100644 --- a/Source/Game/Server/WorldSession.cs +++ b/Source/Game/Server/WorldSession.cs @@ -74,7 +74,10 @@ namespace Game for (byte i = 0; i < 2; ++i) { if (m_Socket[i] != null) + { m_Socket[i].CloseSocket(); + m_Socket[i] = null; + } } // empty incoming packet queue