private byte[] Serialize(object toSend) { Packer packer = new Packer(); this.serializeManager.Serialize(packer, toSend); return packer.GetPackedData(); }
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()); }
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); }
public void sendMessage(byte[] message) { Packer packer = new Packer(message.Length + getHeaderLength()); fixMessage(packer, message); this.connection.SendInternal(packer.GetPackedData()); }
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(); }
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; }