private static void Listen() { Task.Run(() => { var data = new List <byte>(); byte[] buffer; while (Client.Connected) { data.Clear(); while (Client.Available > 0) { buffer = new byte[Math.Min(Conduit.BufferSize, Client.Available)]; Client.GetStream().Read(buffer, 0, buffer.Length); data.AddRange(buffer); } if (data.Count > 0) { DataReceived(null, new PacketReceivedEventArgs { Packet = ConduitPacket.Deserialize(data.ToArray()) }); } } }); }
private static void Listen() { Task.Run(() => { var data = new List <byte>(); byte[] buffer; while (true) { foreach (var client in Clients) { data.Clear(); if (client.Connected) { var stream = client.GetStream(); while (client.Available > 0) { buffer = new byte[Math.Min(Conduit.BufferSize, client.Available)]; stream.Read(buffer, 0, buffer.Length); data.AddRange(buffer); } if (data.Count > 0) { DataReceived(null, new PacketReceivedEventArgs { Packet = ConduitPacket.Deserialize(data.ToArray()) }); } } } if (!Server.Pending()) { continue; } Clients.Add(Server.AcceptTcpClient()); ClientConnected(null, EventArgs.Empty); } }); }