private void ReceiveCallback(IAsyncResult ar) { try { NetUtil.StateObject state = (NetUtil.StateObject)ar.AsyncState; int bytesRead = clientSocket.EndReceive(ar); if (bytesRead > 0) { state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead)); var content = state.sb.ToString(); Console.WriteLine($"Received Data: \"{content}\""); List <NetUtil.Packet> packets = NetUtil.ParsePackets(content); foreach (NetUtil.Packet packet in packets) { TreatMessage(packet.Type, packet.Data); } } state.sb.Clear(); clientSocket.BeginReceive(state.buffer, 0, NetUtil.StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state); } catch (Exception e) { Console.WriteLine(e.ToString()); Disconnect(e, true); } }
public void Receive() { try { NetUtil.StateObject state = new NetUtil.StateObject(); clientSocket.BeginReceive(state.buffer, 0, NetUtil.StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state); } catch (Exception e) { Console.WriteLine(e.ToString()); Disconnect(e, true); } }