Я нашел ответ на свой вопрос. В \ Wireshark \ DOC \ README.developer адреса Wireshark документов это:
Не принести мало-младшему значение с помощью "tvb_get_ntohs() или "tvb_get_ntohl()", а затем с помощью " g_ntohs() », "g_htons()", "g_ntohl()", или "g_htonl()" на полученное значение - то g_ подпрограммы в вопросе преобразования между сетевым порядком байтов (большой-Endian) и хост порядок следования байтов, не малоэтажный байт, а не все машины, на которых работает Wireshark little-endian, хотя ПК есть. Извлеките эти значения с помощью «tvb_get_letohs()» и «tvb_get_letohl()».
В поисках в tvbuff.h
, я вижу, есть и другие ароматы, а также:
extern guint16 tvb_get_letohs(tvbuff_t*, const gint offset);
extern guint32 tvb_get_letoh24(tvbuff_t*, const gint offset);
extern guint32 tvb_get_letohl(tvbuff_t*, const gint offset);
extern guint64 tvb_get_letoh64(tvbuff_t*, const gint offset);
проводок так, что люди задают этот вопрос в будущем сможет найти ответ.
Не могли бы вы просто «hton» результирующие данные? Это уродливый взломать, но я также не могу понять, почему достойный протокол будет представлять данные в каком-то конкретном конкретном формате байтового байта. – ereOn
Я мог бы, конечно, но предпочел бы, если есть способ обойти это. Согласитесь с вами относительно надежности этого протокола - это то, против чего я выступал, когда был разработан протокол. Увы, я проиграл. –