public override void Connect(IPAddress address, int port) { socket = new Socket(address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try { socket.Connect(address, port); } catch (SocketException ex) { ErrorHandler.LogError("connecting to server", ex); game.Disconnect("&eUnable to reach " + address + ":" + port, "Unable to establish an underlying connection"); Dispose(); return; } NetworkStream stream = new NetworkStream(socket, true); reader = new NetReader(stream); writer = new NetWriter(stream); gzippedMap = new FixedBufferStream(reader.buffer); envMapApperanceVer = 2; Disconnected = false; receivedFirstPosition = false; lastPacket = DateTime.UtcNow; game.MapEvents.OnNewMap += OnNewMap; MakeLoginPacket(game.Username, game.Mppass); SendPacket(); lastPing = DateTime.UtcNow; }