public void ListenOnce() { if (!IsConnected()) { return; } if (Available()) { ReserveBufferStorage(ref receiveBuffer, connection.Available); connection.Client.Receive(receiveBuffer, 0, connection.Available, SocketFlags.None); var packets = PacketSerializer.Deserialize(receiveBuffer); for (var i = 0; i < packets.Length; i++) { Received(this, packets[i]); } } }
private void BeginReceiveCallback(IAsyncResult results) { if (!IsConnected()) { return; } var bytes = connection.Available; ReserveBufferStorage(ref receiveBuffer, bytes); connection.Client.Receive(receiveBuffer, 4, bytes, SocketFlags.None); var packets = PacketSerializer.Deserialize(receiveBuffer); for (var i = 0; i < packets.Length; i++) { Received(this, packets[i]); } connection.Client.EndReceive(results); InternalBeginListen(); }