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); }
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); }