19

网络上的数据传输以什么字节顺序发生?是小端还是大端?数据到达主机后如何转换为相应的字节顺序?

4

3 回答 3

26

“网络字节顺序”是 Big Endian,TCP 等协议将其用于整数字段(例如端口号)。可以使用 htons 和 ntohs 等函数进行转换。

数据本身没有任何字节顺序,它完全由应用程序定义,除非您使用XDR 等表示层。

于 2009-06-15T18:27:11.397 回答
4

它以您发送的任何顺序传输。

传统上,互联网协议使用大端,因为进行大部分通信的机器都是大端。

但是,如果您定义自己的结构以通过网络发送,则无需遵循该约定。

在 C 编程中,通常使用 htons 或 ntohs 宏来进行转换。

于 2009-06-15T18:27:43.550 回答
2

如果您使用 tcp 使用 htons((short)port) 使您能够使用网络安全协议(基本上是大端)并且不关心小端与大端。

如果您确实需要转换使用 http://www.codeguru.com/forum/showthread.php?t=292902

它解释得很好

于 2009-06-15T18:29:23.173 回答