Пример #1
0
        internal static void WriteHeader(byte[] buffer, int offset, ushort sourcePort, ushort destinationPort, uint sequenceNumber, uint acknowledgmentNumber, TcpControlBits controlBits, ushort window, ushort urgentPointer, TcpOptions options)
        {
            int num = 20 + options.BytesLength;

            TransportDatagram.WriteHeader(buffer, offset, sourcePort, destinationPort);
            ByteArrayExtensions.Write(buffer, offset + 4, sequenceNumber, Endianity.Big);
            ByteArrayExtensions.Write(buffer, offset + 8, acknowledgmentNumber, Endianity.Big);
            ByteArrayExtensions.Write(buffer, offset + 12, (ushort)((TcpControlBits)(num / 4 << 12) | controlBits), Endianity.Big);
            ByteArrayExtensions.Write(buffer, offset + 14, window, Endianity.Big);
            ByteArrayExtensions.Write(buffer, offset + 18, urgentPointer, Endianity.Big);
            options.Write(buffer, offset + 20);
        }
Пример #2
0
 internal static void WriteHeader(byte[] buffer, int offset, ushort sourcePort, ushort destinationPort, int payloadLength)
 {
     TransportDatagram.WriteHeader(buffer, offset, sourcePort, destinationPort);
     ByteArrayExtensions.Write(buffer, offset + 4, (ushort)(8 + payloadLength), Endianity.Big);
 }