《计算机网络与通信》获取主机名和IP地址.docVIP

《计算机网络与通信》获取主机名和IP地址.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机网络与通信》获取主机名和IP地址

目录 1 绪言 1 2方案的论证及选择 1 3 重要结构和函数 1 3.1 函数gethostname 1 3.2 函数gethostbyname 2 3.3 函数inet_ntoa 2 3.4 函数TextOut 3 3.5 函数memcpy 3 3.6 WSAData结构 3 4 设计过程 5 4.1 新建对话框 5 4.2 添加控件 5 4.3 添加成员变量 6 4.4 为控件添加映射消息 6 4.5 定义函数 7 4.6 添加代码 7 4.7 设计icon并运行程序 10 5 程序运行结果及分析 10 6 心得体会 11 参考文献 11 附录1 sanjinDlg.cpp程序 12 附录2 头文件sanjinDlg.h 18 1 绪言 Microsoft Visual C++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。 在网络编程中,像获取主机名和IP地址这样的基本应用是必不可少的,这些基本的应用通过适当改变可以很容易地应用到网络软件中。因此,获取主机名和IP地址是用现实意义的。 2方案的论证及选择 方案一:用Windows API进行设计。Windows API可以很容易获取主机名和IP地址,但是在窗口设计是却显得比较繁琐。 方案二:用MFC进行设计。用MFC设计可以更容易的设计显示界面,在获取主机名和IP地址方面也比不复杂。 综上,选择方案二。 3 重要结构和函数 3.1 函数gethostname 函数原型为: int gethostname(char *name,int namelen); 其中,参数name是一个指向将要存放主机名的缓冲区的指针,namelen用于指定缓冲区的长度。该函数把本地主机名存放入由name参数指定的缓冲区中。返回的主机名是一个以NULL结束的字符串。主机名的形式取决于Windows Sockets实现-它可能是一个简单的主机名,或者是一个域名。然而,返回的名字必定可以在gethostbyname()和WSAAsyncGetHostByName()中使用。如果没有错误发生,gethostname()返回0。否则它返回SOCKET_ERROR。 3.2 函数gethostbyname 函数原型为: struct hostent* gethostbyname(const char* addr); 其中,addr为指向主机名的指针,它一般有函数gethostname返回。该函数返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针,该结构的格式如下: structhostent { char*h_name; char**h_aliases; inth_addrtype; inth_length; char**h_addr_list; #define h_addr h_addr_list[0] }; 其中,h_name是地址的正式名称;h_aliases是空字节-地址的预备名称的指针;h_addrtype地址类型,通常是AF_INET;h_length地址的比特长度;h_addr_list是零字节-主机网络地址指针;网络字节顺序;h_addr - h_addr_list中的第一地址。 需要注意的是gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSA-Startup函数,只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接),应用程序才可以调用其他Windows Sockets DLL中的函数。当程序将要结束时,又必须调用WSACleanup 函数进行清理工作,以便释放其占用的资源。WSACleanup 函数用来结束Windows Sockets DLL的使用。 3.3 函数inet_ntoa 函数原型为: char FAR * inet_ntoa( struct in_a

文档评论(0)

2017meng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档