欢迎来到天天文库
浏览记录
ID:49287478
大小:736.50 KB
页数:19页
时间:2020-02-03
《Visual C++网络编程技术-07.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、局域网信息查询授课教师:网络编程——导入局域网的特点是网速快,距离短。因此,局域网编程也是网络编程技术应用的重要领域,尤其是在Windows网络系统中,邻近的计算机可以通过网上邻居进行近距离的交流。共享文件的功能有效地替代了利用其他协议传输文件的繁琐。将网络应用工具集成于操作系统是Windows的一个很好的特点。本章要点IP地址与主机名之间的转换获取局域网中的计算机名和IP地址查找网上邻居局域网消息发送IP地址与主机名之间的转换程序界面IP地址转换成计算机名structhostentFAR*host=gethostbyaddr((char*)(&a),4,AF_INET);if(
2、host==NULL){AfxMessageBox("错误的IP地址");return;}CStringHostName=host->h_name;主机名转换成IP地址structhostent*pHost;pHost=gethostbyname(m_name);inti=0;CStringstrIP;while(pHost->h_addr_list[i]!=NULL){strIP=inet_ntoa(*(structin_addr*)pHost->h_addr_list[i]);CStringstr="本机的IP地址:"+strIP;MessageBox(str,NULL,MB
3、_OK);i++;}代码详解——gethostbyaddr函数该函数返回对应于给定地址的包含主机名字和地址信息的hostent结构指针。structhostentFAR*PASCALFARgethostbyaddr(constcharFAR*addr,intlen,inttype);参数addr:指向网络字节顺序地址的指针。参数len:地址的长度,在AF_INET类型中为4。参数type:地址类型,应为AF_INET。代码详解——gethostbyname函数从主机名数据库中得到对应的“主机”(由名字和地址标识)。注意这里得到的“主机”可能是多个而不止一个。structhoste
4、nt*FARgethostbyname(constchar*name);参数name:是主机名。获取局域网中其它计算机名和IP地址查找局域网其他计算机实现代码详见教材代码详解——WNetOpenEnum()函数开始一个网络资源或存在的网络连接枚举值,这个函数会返回WNetEnumResource函数用于枚举资源的一个句柄。DWORDWNetOpenEnum(DWORDdwScope,DWORDdwType,DWORDdwUsage,LPNETRESOURCElpNetResource,LPHANDLElphEnum)参数dwScope:指定列举的范围。参数dwType:指定列举的
5、资源类型。参数dwUsage:指定列举资源的用法,如果该函数的第一个参数dwScope不是RESOURCE_GLOBALNET,则该参数将被忽略。参数lpNetResource:指向NETRESOURCE结构的指针,该结构包含了列举资源的相关信息。参数lphEnum:指向列举变量的句柄指针。代码详解——WNetEnumResource()函数获取详细的网络资源信息。DWORDWNetEnumResource(HANDLEhEnum,LPDWORDlpcCount,LPVOIDlpBuffer,LPDWORDlpBufferSize)参数hEnum:由函数WNetOpenEnum(
6、)返回的标识某一枚举实例的句柄。参数lpcCount:指定枚举条目的数量。参数lpBuffer:指向取得枚举结果的缓冲区指针,用NETRESOURCE结构数组表示。参数lpBufferSize:指定上面缓冲区的大小。代码详解——WNetCloseEnum()函数结束网络资源的枚举。DWORDWNetCloseEnum(HANDLEhEnum)参数hEnum:是函数WNetOpenEnum()所构建的枚举句柄。程序扩展——网上邻居详细代码见教材关键函数:WNetOpenEnum()WNetEnumResource()WNetCloseEnum()局域网消息发送在Windows操作系
7、统中,“信使服务”在服务列表中名称为“Messenger”,该服务用来传输客户端和服务器之间的NetSend和Alerter(报警器)服务消息。NetSend命令格式如下:NETSEND{NAME
8、*
9、/DOMAIN[:NAME]
10、/USERS}MESSAGE例如:netsend192.168.1.2你好!程序运行界面程序源代码见教材代码详解——CreateProcess()函数本实例中利用子进程的方法,调用Shell创建NetSend命令。CreateProcess函数负责创建
此文档下载收益归作者所有