From 60b4035ec5d744d47b74ecc66a70b5f567438fd9 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Wed, 30 Mar 2016 20:16:59 -0400 Subject: [PATCH] Receive routine in the lobby server now checks if bytes read is > (not >=) than 0. This was causing connections to stay active and cause the CPU to get bogged down. --- FFXIVClassic Lobby Server/ClientConnection.cs | 1 + FFXIVClassic Lobby Server/Server.cs | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/FFXIVClassic Lobby Server/ClientConnection.cs b/FFXIVClassic Lobby Server/ClientConnection.cs index 1a24974a..76e77fd9 100644 --- a/FFXIVClassic Lobby Server/ClientConnection.cs +++ b/FFXIVClassic Lobby Server/ClientConnection.cs @@ -76,6 +76,7 @@ namespace FFXIVClassic_Lobby_Server public void disconnect() { + socket.Shutdown(SocketShutdown.Both); socket.Disconnect(false); } } diff --git a/FFXIVClassic Lobby Server/Server.cs b/FFXIVClassic Lobby Server/Server.cs index 3f81fbbc..47bfd73d 100644 --- a/FFXIVClassic Lobby Server/Server.cs +++ b/FFXIVClassic Lobby Server/Server.cs @@ -51,9 +51,9 @@ namespace FFXIVClassic_Lobby_Server #region Socket Handling public bool startServer() { - cleanupThread = new Thread(new ThreadStart(socketCleanup)); - cleanupThread.Name = "LobbyThread:Cleanup"; - cleanupThread.Start(); + //cleanupThread = new Thread(new ThreadStart(socketCleanup)); + //cleanupThread.Name = "LobbyThread:Cleanup"; + //cleanupThread.Start(); IPEndPoint serverEndPoint = new System.Net.IPEndPoint(IPAddress.Parse(ConfigConstants.OPTIONS_BINDIP), FFXIV_LOBBY_PORT); @@ -147,7 +147,7 @@ namespace FFXIVClassic_Lobby_Server bytesRead += conn.lastPartialSize; - if (bytesRead >= 0) + if (bytesRead > 0) { int offset = 0; @@ -187,6 +187,7 @@ namespace FFXIVClassic_Lobby_Server lock (mConnectionList) { + conn.disconnect(); mConnectionList.Remove(conn); } }