public static byte[] SerializeToBuffer(BasePacket bp) { using (MemoryStream stream = new MemoryStream()) { stream.Seek(0, SeekOrigin.Begin); BinaryWriter writer = new BinaryWriter(stream); { bp.Write(writer); } return(stream.ToArray()); } }
private bool SendUnencrypted(Peer peer, ChannelID channel, BasePacket packet, bool reliable = true, bool unsequenced = false) { byte[] data; using (var stream = new MemoryStream()) { using (var writer = new PacketWriter(stream, true)) { packet.Write(writer); } data = stream.GetBuffer().Take((int)stream.Length).ToArray(); } return(peer.Send(channel, data, reliable, unsequenced)); }
private void Send() { BasePacket[] packetList = PrepPacketsToSend(); if (packetList == null) { return; } memoryStream.Seek(0, SeekOrigin.Begin); for (int i = 0; i < packetList.Length; i++) { BasePacket packet = packetList[i]; ManageDebuggingPackets(packet); int pos = Network.Utils.SetupWrite(binaryWriter); packet.Write(binaryWriter); Network.Utils.FinishWrite(binaryWriter, pos); IntrepidSerialize.ReturnToPool(packet); } SendRecursive(packetList); }