《Visual-C++网络编程技术-07.ppt》由会员分享,可在线阅读,更多相关《Visual-C++网络编程技术-07.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络编程技术网络编程技术导入导入v局域网的特点是网速快,距离短。因此,局域网局域网的特点是网速快,距离短。因此,局域网编程也是网络编程技术应用的重要领域,尤其是编程也是网络编程技术应用的重要领域,尤其是在在Windows网络系统中,邻近的计算机可以通网络系统中,邻近的计算机可以通过网上邻居进行近距离的交流。共享文件的功能过网上邻居进行近距离的交流。共享文件的功能有效地替代了利用其他协议传输文件的繁琐。将有效地替代了利用其他协议传输文件的繁琐。将网络应用工具集成于操作系统是网络应用工具集成于操作系统是Windows的一的一个很好的特点。个很好的特点。 网络编程技术网络编程技术本章要点本章要点vI
2、P地址与主机名之间的转换地址与主机名之间的转换v获取局域网中的计算机名和获取局域网中的计算机名和IP地址地址v查找网上邻居查找网上邻居v局域网消息发送局域网消息发送网络编程技术网络编程技术IP地址与主机名之间的转换地址与主机名之间的转换 v程序界面程序界面网络编程技术网络编程技术IP地址转换成计算机名地址转换成计算机名 v struct hostent FAR *host=gethostbyaddr (char *)(&a),4,AF_INET);vif(host=NULL)vvAfxMessageBox(错误的错误的IP地址地址);vreturn;vvCString HostName=hos
3、t-h_name; 网络编程技术网络编程技术主机名转换成主机名转换成IP地址地址 v struct hostent* pHost;v pHost = gethostbyname(m_name); v int i=0;v CString strIP;v while(pHost-h_addr_listi != NULL) v vstrIP = inet_ntoa(*(struct in_addr *) pHost-h_addr_listi); vCString str=本机的本机的IP地址:地址: + strIP;vMessageBox(str,NULL,MB_OK);vi+; v 网络编程技术网
4、络编程技术代码详解代码详解gethostbyaddr函数函数v该函数返回对应于给定地址的包含主机名字和地址该函数返回对应于给定地址的包含主机名字和地址信息的信息的hostent结构指针。结构指针。vstruct hostent FAR *PASCAL FAR gethostbyaddr(const char FAR * addr, int len, int type);v参数参数addr:指向网络字节顺序地址的指针。:指向网络字节顺序地址的指针。v参数参数len: 地址的长度,在地址的长度,在AF_INET类型中为类型中为4。v参数参数type:地址类型,应为:地址类型,应为AF_INET。
5、网络编程技术网络编程技术代码详解代码详解gethostbyname函数函数v从主机名数据库中得到对应的从主机名数据库中得到对应的“主机主机”(由名字和由名字和地址标识地址标识)。注意这里得到的。注意这里得到的“主机主机”可能是多个可能是多个而不止一个。而不止一个。vstruct hostent * FAR gethostbyname( const char* name );v参数参数name:是主机名。:是主机名。 网络编程技术网络编程技术获取局域网中其它计算机名和获取局域网中其它计算机名和IP地址地址 网络编程技术网络编程技术查找局域网其他计算机查找局域网其他计算机 实现代码详见教材实现代码
6、详见教材网络编程技术网络编程技术代码详解代码详解WNetOpenEnum()函数函数v 开始一个网络资源或存在的网络连接枚举值,这个函数会返回开始一个网络资源或存在的网络连接枚举值,这个函数会返回WNetEnumResource函数用于枚举资源的一个句柄。函数用于枚举资源的一个句柄。v DWORD WNetOpenEnum(v DWORD dwScope, v DWORD dwType, v DWORD dwUsage, v LPNETRESOURCE lpNetResource, v LPHANDLE lphEnumv ) v 参数参数dwScope:指定列举的范围。:指定列举的范围。v 参
7、数参数dwType:指定列举的资源类型。:指定列举的资源类型。v 参数参数dwUsage:指定列举资源的用法,如果该函数的第一个参数:指定列举资源的用法,如果该函数的第一个参数dwScope不是不是RESOURCE_GLOBALNET,则该参数将被忽略。,则该参数将被忽略。v 参数参数lpNetResource:指向:指向NETRESOURCE结构的指针,该结结构的指针,该结构包含了列举资源的相关信息。构包含了列举资源的相关信息。v 参数参数lphEnum:指向列举变量的句柄指针。:指向列举变量的句柄指针。网络编程技术网络编程技术代码详解代码详解WNetEnumResource()函数函数v
8、获取详细的网络资源信息。获取详细的网络资源信息。v DWORD WNetEnumResource(v HANDLE hEnum, v LPDWORD lpcCount,v LPVOID lpBuffer, v LPDWORD lpBufferSizev ) v 参数参数hEnum:由函数:由函数WNetOpenEnum()返回的标识返回的标识某一枚举实例的句柄。某一枚举实例的句柄。v 参数参数lpcCount:指定枚举条目的数量。:指定枚举条目的数量。v 参数参数lpBuffer:指向取得枚举结果的缓冲区指针,用:指向取得枚举结果的缓冲区指针,用NETRESOURCE结构数组表示。结构数组表示
9、。v 参数参数lpBufferSize:指定上面缓冲区的大小。:指定上面缓冲区的大小。 网络编程技术网络编程技术代码详解代码详解WNetCloseEnum()函数函数v结束网络资源的枚举。结束网络资源的枚举。vDWORD WNetCloseEnum( HANDLE hEnum )v参数参数hEnum:是函数:是函数WNetOpenEnum()所所构建的枚举句柄。构建的枚举句柄。网络编程技术网络编程技术程序扩展程序扩展网上邻居网上邻居 网络编程技术网络编程技术v详细代码见教材详细代码见教材关键函数:关键函数:vWNetOpenEnum()vWNetEnumResource()vWNetClose
10、Enum()网络编程技术网络编程技术局域网消息发送局域网消息发送 v在在Windows操作系统中,操作系统中,“信使服务信使服务”在服务在服务列表中名称为列表中名称为“Messenger”,该服务用来传,该服务用来传输客户端和服务器之间的输客户端和服务器之间的Net Send和和Alerter(报警器)服务消息。(报警器)服务消息。 Net Send命令格式如下:命令格式如下:vNET SEND NAME | * | /DOMAIN : NAME | /USERS MESSAGEv例如:例如:net send 192.168.1.2 你好!你好! 网络编程技术网络编程技术程序运行界面程序运行界
11、面v程序源代码见教材程序源代码见教材网络编程技术网络编程技术代码详解代码详解CreateProcess()函数函数v 本实例中利用子进程的方法,调用本实例中利用子进程的方法,调用Shell创建创建Net Send命令。命令。CreateProcess函数负责创建子进程。函数负责创建子进程。v BOOL CreateProcess(v LPCTSTR lpApplicationName, v LPTSTR lpCommandLine, v LPSECURITY_ATTRIBUTES lpProcessAttributes。v LPSECURITY_ATTRIBUTES lpThreadAttributes, v BOOL bInheritHandles, v DWORD dwCreationFlags,v LPVOID lpEnvironment, v LPCTSTR lpCurrentDirectory, v LPSTARTUPINFO lpStartupInfo, v LPPROCESS_INFORMATION lpProcessInformation v );
限制150内