linuxネットワーク転送データサイズの問題解決


シーケンス番号
英語名
中国語名
説明
1
big-endian
大尾順
アドレスの下位記憶値の上位
2
little-endian
小尾順
アドレスの下位記憶値の下位
異なるコンピュータ間でデータ転送を行う場合、サイズ端の問題があります.サイズ端の問題を解決するには、以下の関数を使用します.u_short htons(u_short hostshort);
htonsは、整数がアドレス空間記憶方式で、上位バイトがメモリの低アドレスに格納されるように、ホストバイト順からネットワークバイト順に変換される.
ネットワークバイト順はTCP/IPに規定されたデータ表示フォーマットであり、具体的なCPUタイプ、オペレーティングシステムなどとは無関係であり、データが異なるホスト間で伝送される際に正確に解釈されることを保証することができ、ネットワークバイト順はbig-endianソート方式を採用している.
uint32_t htonl(uint32_t hostlong);
htonlこの関数は、32ビット数をホストバイト順からネットワークバイト順に変換します.
符号なしで短くする×××数は、ネットワークバイト順からホストバイト順に変換されます.
#include
uint16_t ntohs(uint16_t netshort);
ntohl()は符号なしの長さを×××数は、ネットワークバイト順からホストバイト順に変換されます.
uint32_t ntohl(uint32_t netlong);
Netlong:ネットワークバイト順で表される32ビット数.