Esempio n. 1
0
 private byte[] Serialize(object toSend)
 {
     Packer packer = new Packer();
     this.serializeManager.Serialize(packer, toSend);
     return packer.GetPackedData();
 }
Esempio n. 2
0
 private void sendAckMessage(int accnum)
 {
     Packer packer = new Packer(5);
     packer.Pack((byte)(((int)Protocol.Reliable) | ACK_BIT));
     packer.Pack(accnum);
     this.connection.SendInternal(packer.GetPackedData());
 }
Esempio n. 3
0
            protected override void fixMessage(Packer packer, byte[] message)
            {
                int toSendAccNum = this.sendAccNum++;
                packer.Pack((byte)Protocol.Reliable);
                packer.Pack(toSendAccNum);
                packer.Pack(message);

                MessageResendTimer timer = new MessageResendTimer();
                timer.accnumber = toSendAccNum;
                timer.message = packer.GetPackedData();
                timer.stopWatch.Start();

                connection.reliableTimer.addResender(timer);
            }
Esempio n. 4
0
 public void sendMessage(byte[] message)
 {
     Packer packer = new Packer(message.Length + getHeaderLength());
     fixMessage(packer, message);
     this.connection.SendInternal(packer.GetPackedData());
 }
Esempio n. 5
0
            private byte[] buildOrderedMessages(UnPacker unPacker)
            {
                List<int> keysToRemove = new List<int>();
                Packer packer = new Packer(unPacker.remaining());
                packer.Pack(unPacker.UnpackByteArray(unPacker.remaining()));

                foreach (var item in this.outOfOrderMessages.Keys)
                {
                    if (this.lastOrderedMessage + 1 == item)
                    {
                        keysToRemove.Add(item);
                        this.lastOrderedMessage++;
                        packer.Pack(this.outOfOrderMessages[item]);
                    }
                    else
                    {
                        break;
                    }
                }

                keysToRemove.ForEach((x) => this.outOfOrderMessages.Remove(x));

                return packer.GetPackedData();
            }
Esempio n. 6
0
        private UdpClient SendConnectionAck(IPEndPoint endpoint)
        {
            UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 0));
            client.Connect(endpoint);

            Packer packer = new Packer(4);
            packer.Pack(((IPEndPoint)client.Client.LocalEndPoint).Port);
            client.Send(packer.GetPackedData(), 4);
            return client;
        }