private void MessageReceiver() { try { string ip = "193.219.91.103"; //string ip = "doesntexist"; //string ip = "127.0.0.1"; ushort port = 7099; //ushort port = 54000; if (client.Connect(ip, port)) { // Wait for packet while (client.PacketCount() == 0) { Thread.Sleep(10); } // Confirm connection Packet result = client.GetPacket(); if (Encoding.ASCII.GetString(result.Data) == "Connected.") { connected = true; } else { connected = false; return; } } else { connected = false; return; } // Send request to open chat client.Send(new Packet { PacketId = (uint)PacketType.OPEN_CHAT, Data = Encoding.ASCII.GetBytes(eventId.ToString()) }); // Wait for packet while (client.PacketCount() == 0) { Thread.Sleep(10); } // Read confirmation packet client.GetPacket(); // Load previous messages while (client.PacketCount() > 0) { Packet message = client.GetPacket(); string msgString = Encoding.ASCII.GetString(message.Data); messages.Add(new Message(DataList.FromList(Json.ToList(msgString)))); Console.WriteLine(messages.Last().Content); } // Populate the chat window foreach (var msg in messages) { AddMessage(msg); } // Listen for new messages while (true) { if (!client.Connected()) { break; } while (client.PacketCount() > 0) { Packet packetMessage = client.GetPacket(); Packet packetEventId = client.GetPacket(); Message message = new Message(DataList.FromList(Json.ToList(Encoding.ASCII.GetString(packetMessage.Data)))); string eventId = Encoding.ASCII.GetString(packetEventId.Data); if (this.eventId.ToString() == eventId) { Console.WriteLine(message.Content); AddMessage(message); } } Thread.Sleep(100); } } catch { return; } }