В настоящее время я изучаю программирование сокетов в python и испытываю странное поведение с socket.htons () ... похоже, что при каждом вызове он переворачивает байты.
Я реализую простой сценарий проверки связи, поскольку я знаю, что порядок байтов в сети имеет большой порядок байтов, а порядок в моих системных байтах - это порядок байтов.
Если я использую htons в моей 16-битной контрольной сумме, Wireshark сообщает, что она неверна, однако, если я просто упаковываю контрольную сумму в структуру без использования htons, wireshark подтверждает, что она правильная.
Это то, что Wireshark захватил при использовании htons
Checksum: 0xece4 [incorrect, should be 0xe4ec]
А вот краткий пример ...
>>> z = 0xFF00
>>> print z
65280
>>> z = socket.htons(z)
>>> print z
255
>>> z = socket.htons(z)
>>> print z
65280
Буду очень признателен за любые мысли по этому поводу, надеюсь, я просто что-то сделал очень неправильно.
Edit:
>>> print sys.byteorder
little