- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验2 网络编程基本函数的使用 实验日期: 一、实验目的 1、了解linux下的网络编程常使用的函数及其用法 二、实验环境 1、带网络连接的Linux系统,实验室的环境为Ubuntu 三、实验步骤 1、你的Linux系统使用的是大端字节序还是,,,,端字节序,如通过编写程序来分析判断?(附上代码和结果,并分析说明) 本机器使用的是,,,,端字节序。 main(){ int num = 0 printf(%u %x \n, ((char *)num) + 0, *(((char *)num) + 0)); printf(%u %x \n, ((char *)num) + 1, *(((char *)num) + 1)); printf(%u %x \n, ((char *)num) + 2, *(((char *)num) + 2)); printf(%u %x \n, ((char *)num) + 3, *(((char *)num) + 3)); } 2、IP地址转换。编写程序将字符串IP“6”转换成32位的整型数IP,再将其转换回字符串。 #include netdb.h #include arpa/inet.h main(){ char *ipStr; in_addr_t ipNum = inet_addr(6); printf(32位整数:%u \n, ipNum); ipStr = inet_ntoa(*((struct in_addr *)ipNum)); printf(IP字符串形式:%s \n, ipStr); } 参考函数: in_addr_t inet_addr(const char *string) int inet_pton(int af, const char *src, void *dst) char *inet_ntoa(struct in_addr address) const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) 2、编写C或者C++程序,使用Linux的系统函数调用,获取某个域名(例如:, HYPERLINK /,)对应的IP地址列表?你获取的IP地址列表中有多少个ip地址,为什么有些域名会对应多个ip地址?(附上代码和结果) 部分服务器拥有多个IP地址是服务器使用了DNS负载均衡技术,将不同的用户引导到不同的服务器去。 提示:使用gethostbyname来获取ip地址列表 #include netdb.h #include sys/socket.h struct hostent *gethostbyname(const char *name); 这个函数的传入域名或者主机名后,将会传出一个hostent的结构。如果函数调用失败,将返回NULL,结构体表示如下: struct hostent??? {??? ??? char??? *h_name;??????????????????? ??? char??? **h_aliases;???? ??? int???? h_addrtype;??? ??? int???? h_length;??? ??? char??? **h_addr_list;???? ??? #define h_addr h_addr_list[0]???? }; 结构体各字段说明:? hostent-h_name??? 表示的是主机的规范名。例如的规范名其实是。??? hostent-h_aliases??? 表示的是主机的别名.就是google他自己的别名。有的时候,有的主机可能有好几个别名,这些,其实都是为了易于用户记忆而为自己的网站多取的名字。??? hostent-h_addrtype???????? 表示的是主机ip地址的类型,到底是ipv4(AF_INET),还是pv6(AF_INET6)??? hostent-h_length?????????? 表示的是主机ip地址的长度??? hostent-h_addr_lisst???? 表示的是主机的ip地址 参考代码,有部分代码缺失,需要同,,,,们补齐,也可以自己实现: //头文件 #include netdb.h #include sys/socket.h #include stdio.h #include arpa/inet.h //主函数 int main(int argc, char **argv) { char *pArg, **pptr; struct hostent *hptr; char
文档评论(0)