在网络中是大端序还是小端序?

22

网络数据传输的字节顺序是什么?是小端序还是大端序?一旦数据到达主机,如何将其转换为相应的字节顺序?

(注:该段内容已为中文,无需翻译)

你能再解释一下吗?TCP/UDP是什么? - Daniel A. White
数据从哪里/如何到达主机? - Paul Sonier
3个回答

29
"网络字节序"是大端序,像TCP这样的协议使用它来表示整数字段(例如端口号)。可以使用htons和ntohs等函数进行转换。
数据本身没有任何字节序,完全由应用程序定义,除非您使用Presentation Layer,例如XDR。

5

你发送的内容以任何顺序传输。

传统上,因为大多数进行通讯的计算机都是大端序,因此Internet协议使用大端序。

然而,如果你定义自己的结构体来在网络上发送数据,那么没有必要遵循这个惯例。

在C语言中,通常会使用htons或ntohs宏来进行转换。


2

如果您正在使用TCP,使用htons((short)port)可以使您使用网络安全协议(基本上是大端),并且不用担心小端和大端的问题。

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

这个网站解释得很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接