private void Receive() { while (IsConnected) { try { var buffer = new byte[2048]; var len = _socket.Receive(buffer, 0, buffer.Length, SocketFlags.None); if (len < 1) { break; } var packet = new Packet(buffer); if (_packetHandler != null) { _packetHandler.InvokePacket(this, packet); } PacketReceived.SafeInvoke(this, new PacketEventArgs(packet, PacketEventType.Receive)); } catch (SocketException ex) { if (ex.ErrorCode == 10053 || ex.ErrorCode == 10054) { continue; } Logger.Log("NetworkClient Error: {0} Code: {1}", ex.Message, ex.ErrorCode); Logger.Log("NetworkClient Stack: {0}", ex.StackTrace); } catch (Exception ex) { Logger.Log("NetworkClient Error: {0}", ex.Message); Logger.Log("NetworkClient Stack: {0}", ex.StackTrace); } } }