- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 服务器和客户端信息的获取 由于在网络传输的数据和本地的数据之间存在字节序的对应问题,本章介绍了网络程序设计中经常用到的网络字节序的概念,并对字节序的转换函数进行了详细的介绍。本章中还对经常用到的IP转化函数、DNS转换、协议名称处理等进行了介绍。主要包含如下内容: 介绍了网络字节序和主机字节序的概念,并介绍如何进行网络字节序和主机字节序之间的转换。 介绍了字符串IP地址和二进制IP地址之间的转换函数,例如,inet_aton()、inet_ntoa()、inet_addr()等,并介绍了协议无关的转换函数,例如inet_pton()和inet_ntop()函数。 介绍了如何使用gethostbyname()及gethostbyaddr()函数获得目标主机的信息,并简单介绍了DNS的概念。 8.1 字节序 字节序是由于不同的主处理器和操作系统对大于一个字节的变量在内存中的存放顺序不同而产生的,例如两个字节的short int和四个字节的int类型变量都有字节序的问题。字节序通常有大端字节序和小端字节序的两种分类方法。 8.1.1 大端字节序和小端字节序 字节序是由于CPU和OS对多字节变量的内存存储顺序不同而产生的。 1.字节序介绍 2.字节序的例子 8.1.2 字节序转换函数 由于主机的千差万别,主机的字节序不能做到统一,但是对于网络上传输的变量,它们的值必须有一个统一的表示方法。网络字节序是指多字节变量在网络传输时的表示方法,网络字节序采用高端字节序的表示方法。这样小端字节序的系统通过网络传输变量的时候需要进行字节序的转换,大端字节序的变量则不需要进行转换。 1.字节序转换函数介绍 2.字节序转换的方法 8.1.2 字节序转换函数 8.1.2 字节序转换函数 8.1.3 一个字节序转换的例子 下面的例子是对16位数值和32位数值进行字节序转换,每种类型的数值进行两次转换,最后打印结果。 1.16位字节序转换结构 2.32位字节序转换结构 3.变量值打印函数showvalue 4.主函数main 5.16位值0xabcd的二次转换 6.32位值0二次转换 7.结果打印 8.编译运行程序 8.2 字符串IP地址和二进制IP地址的转换 人们可以理解的IP地址表达方式是类似“”这样的字符串;而计算机理解的则是像0x01111111000000000000000000000001()这样表达的IP地址方式。在网络程序的设计中,经常需要进行字符串表达方式的IP地址和二进制的IP地址之间的转换,本节对此类函数进行介绍。 8.2.1 inet_xxx()函数 Linux操作系统有一组函数用于网络地址的字符串形式和二进制形式之间的转换,其形式为inet_xxx()。函数的原型如下: #include sys/socket.h #include netinet/in.h #include arpa/inet.h 1.函数inet_aton() 2.函数inet_addr() 3.函数inet_network() 4.函数inet_ntoa() 5.函数inet_makeaddr() 6.函数inet_lnaof() 7.函数inet_netof() 8.结构struct in_addr 8.2.2 inet_pton()和inet_ntop()函数 函数inet_pton()和函数inet_ntop()是一套安全的协议无关的地址转换函数。所谓的“安全”是相对于inet_aton()函数的不可重入性来说。这两个函数都是可以重入的,并且这些函数支持多种地址类型,包括IPv4和IPv6。 1.函数inet_pton() 2.函数inet_ntop() 8.2.3 使用8.2.1小节地址转换函数的例子 前面的两个小节对地址转换函数进行了介绍,本节通过两个例子对上述函数进行简单的说明。 测试结果表明函数inet_ntoa()、inet_addr()是不可重入的。 1.初始化设置 2.测试函数inet_aton() 3.测试函数inet_addr() 4.测试函数inet_ntoa() 5.测试函数inet_ntoa() 6.测试函数inet_lnaof() 7.测试函数inet_lnaof() 8.编译运行程序 8.2.4 使用函数inet_pton和函数inet_ntop的例子 下面的代码是使用函数inet_pton和函数inet_ntop的例子。在代码中对如何使用这两个函数使用函数inet_pton将字符串转换为二进制和使用函数inet_ntop将二进制IP地址转化为字符串的简单实例。 #include sys/types.h #include sys/socket.h #include arpa/i
您可能关注的文档
- 第5章_横向组织结构设计剖析.ppt
- 第7章营运能力剖析.ppt
- 第四章传出神经系统药理重点介绍.ppt
- 第5章_零售组织设计剖析.ppt
- 第7章营运资金管理精剖析.ppt
- 第四章传统外汇交易重点介绍.ppt
- 第5章_商业银行联行往来的核算剖析.ppt
- 第7章营运资金管理剖析.ppt
- 第四章创业板市场重点介绍.ppt
- 第7章营运资金剖析.ppt
- 电气设备与新能源行业:新能车技术深度研究之一,Maxwell的超级电容&干电极(202002).pdf
- 电力设备与新能源行业研究:再议光伏组件产业周期、壁垒、格局及盈利变化趋势.pdf
- 电力设备及新能源行业2月行业洞察报告:特斯拉或引领电池技术升级,静待“超级电容_干电极”开花结果(202002).pdf
- 储能设备行业:储能专题系列报告之储能行业总览,储能,能源革命下的超级赛道(202112).pdf
- 房地产行业企业研究:代建行业发展正当时入局企业该如何应对?.pdf
- 房地产行业产业链深度报告系列一:复盘2012-2021房地产开发及家居行业板块表现(202204).pdf
- 房地产服务-物业管理综述:央企的“逆袭”.pdf
- 房地产第34周周报:允许“一城一策”运用信贷政策,政策释放将更加积极主动.pdf
- 房地产:中金厦门安居保障性租赁住房REIT专题报告:保租房REITs正式发行,开启租赁住房“轻”时代.pdf
- 房地产:物业管理2022半年报综述-厚积薄发,分化进取.pdf
文档评论(0)