Пример #1
0
        public static UdpMessage ReceiveMessage(byte[] message)
        {
            UdpMessage msg = new UdpMessage();

            var offset = 1;
            msg.Type = (MessageType)message[0];
            msg.ConnectionId = MessageConverter.ReadShort(message, ref offset);
            msg.Channel = MessageConverter.ReadShort(message, ref offset);
            msg.MessageId = MessageConverter.ReadShort(message, ref offset);

            msg.Payload = new byte[message.Length - offset];
            Buffer.BlockCopy(message, offset, msg.Payload, 0, msg.Payload.Length);

            return msg;
        }
Пример #2
0
 private async Task SendMessage(UdpMessage requestMessage)
 {
     var destination =
         Connections.FirstOrDefault(
             cr => cr.Channel.Equals(requestMessage.Channel) && !cr.Id.Equals(requestMessage.ConnectionId));
     if (destination == null) return;
     await Client.SendAsync(requestMessage.Bytes, requestMessage.Bytes.Length, destination.IpEndPoint);
     destination.Duration.Restart();
 }
Пример #3
0
 public static byte[] CreateMessage(UdpMessage message)
 {
     return CreateMessage(message.Type, message.ConnectionId, message.Channel, message.MessageId, message.Payload);
 }