另外请注意delphi的版本回, 如果高版本的(delphi2009以上答)用下面的
你对这个回答的评价是?
在网络传输中TCP/IP协议在保存IP地址這个32位二进制数时,协议规定采用在低位存储地址中包含数据的高位字节的存储顺序(大头)这种顺序格式就被称为网络字节顺序格式。在实际网络传输时数据按照每32位二进制数为一组进行传输,由于存储顺序的影响实际的字节传输顺序是由高位字节到低位字节的传輸顺序。 为了使通信的双方都能够理解数据分组所携带的源地址、目的地址以及分组的长度等二进制信息无论是主机还是
,在发送每一個分组以前都必须将二进制信息转换为TCP/IP标准的网络字节顺序格式。网络字节顺序格式的地址不受主机、路由器类型的影响它的表示是唯一的。
函数中的参数cp指向网络中标准的点分地址字符串其中每个以点分开的数字不可以大于255,这些数字可以是十进制、八进制、十六進制或者混合使用如 “
主机字节顺序格式顾名思义,其IP地址的格式是和具体主机或者路由器相关的对于不同的主机,在进行IP地址的存儲时有不同的格式比如对于 Motorola 68k系列主机,其HBO与NBO是相同的而对于Intel x86系列,HBO与NBO则正好相反
在Socket编程中,有四个函数来完成主机字节顺序格式和網络字节顺序格式之间的转换它们是:htonl、htons、ntohl、和ntohs。 htons和ntohs完成16位无符号数的相互转换htonl和ntohl完成32位无符号数的相互转换。
在实际应用中我们常見到将端口号转换的例子(如上例)这是因为,如果用户输入一个数字而且将指定使用这一数字作为端口号,应用程序则必须在使用咜建立地址以前把它从主机字节顺序转换成网络字节顺序(使用htons()函数),以遵守TCP/IP协议规定的存储标准相应地,如果应用程序希望顯示包含于某一地址中的端口号(例如从getpeername()函数中返回的)这一端口号就必须在被显示前从网络顺序转换到主机顺序(使用ntohs()函数)。
下面我们来谈谈网络字节顺序格式它和我们后面将要介绍的主机字节顺序格式一样,都只在进行网络开发中才会遇到因此,在下媔的介绍中我假设读者对Socket
作者: 惨绿尐年 752人浏览
作者: 技术小阿哥 1214人浏览 评论数:0
另外请注意delphi的版本回, 如果高版本的(delphi2009以上答)用下面的
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。