protected async Task <UdpMessage> Receive() { var result = await UdpClient.ReceiveAsync(); var code = BitConverter.ToInt32(result.Buffer, 0); var data = new byte[result.Buffer.Length - 4]; Array.Copy(result.Buffer, 4, data, 0, result.Buffer.Length - 4); var message = ProtobufDeserializerUtil.Deserialize((byte)code, data); return(new UdpMessage { Sender = result.RemoteEndPoint, MessageCode = code, MessageData = message }); }
protected virtual GameInput DeserializeEvent(byte eventCode, object eventData) { return(ProtobufDeserializerUtil.DeserializeQuestInput(eventCode, (byte[])eventData)); }