コード例 #1
0
        private Packet ReceivePacket()
        {
            byte[] bytes = new byte[PacketHeader.SIZE_IN_BYTES];

            socket.Receive(bytes, 0, bytes.Length, SocketFlags.None);

            PacketHeader header = PacketSerializer.deserializeHeader(bytes);

            byte[] payload = new byte[header.GetLength()];

            socket.Receive(payload, 0, payload.Length, SocketFlags.None);

            return(new Packet(header, payload));
        }
コード例 #2
0
        public static byte[] serialize(Packet packet)
        {
            MemoryStream stream = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(stream);

            PacketHeader header = packet.GetHeader();

            writer.Write(System.Text.Encoding.ASCII.GetBytes(header.GetMagic()));

            writer.Write(IPAddress.HostToNetworkOrder(header.GetVersion()));

            writer.Write(IPAddress.HostToNetworkOrder(header.GetLength()));

            writer.Write(System.Text.Encoding.ASCII.GetBytes(header.GetPacketType()));

            writer.Write(packet.GetPayload());

            return(stream.ToArray());
        }