网站大量收购独家精品文档,联系QQ:2885784924

网络聊天编程.pptVIP

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
L3. 枚举网络资源的函数 1.WnetOpenEnum函数 WnetOpenEnum函数用于启动对网络资源进行枚举的过程。 语法: DWORD WnetOpenEnum( DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCE lpNetResource, LPHANDLE lphEnum ); 参数说明: DwScope? 表示网络枚举的范围 DwType? 表示枚举的资源类型 DwUsage? 表示枚举资源的用法 LpNetResource 用于返回网络资源信息 LphEnum? 表示枚举的资源句柄指针 2.WnetEnumResource函数 WnetEnumResource函数用于枚举网络资源。 语法: DWORD WnetEnumResource( HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize ); 参数说明: hEnum? 由WnetOpenEnum函数的参数lphEnum传入,表示枚举的资源句柄 lpcCount? 用来决定获取的资源数目最大值 lpBuffer? 指向枚举结果存放的缓冲区地址 lpBufferSize? 指向枚举结果存储缓冲区大小的变量地址 3.WnetCloseEnum函数 WnetCloseEnum函数用于结束一次枚举操作。 语法: DWORD WnetCloseEnum( HANDLE hEnum ); 参数说明: hEnum 由WnetOpenEnum函数的参数lphEnum传入 L4. gethostbyname函数 gethostbyname函数能够通过计算机的名称返回其网络信息,这个信息中包括IP地址。 语法: struct hostent FAR * gethostbyname ( const char FAR * name ); 参数说明: name 包含计算机名称的字符串 L5. 网络字节顺序 在Internet上传输的数据和本机内存中的数据存储顺序不同。 网络字节顺序NBO(Network Byte Order):按从高到低的顺序存储,在网络上使用统一的网络字节顺序,可以避免兼容性问题。 主机字节顺序HBO(Host Byte Order):不同的机器HBO不相同,与CPU设计有关。计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序(NBO)在网络上传输,所以对于在内部是以低位字节优先方式存储数据的机器,在Internet上传输数据时就需要进行转换。 网络字节顺序和本机字节顺序的转换有两种类型:short(两个字节)和long(四个字节)。这个函数对于变量类型unsigned也适用。比如将short从本机字节顺序转换为网络字节顺序函数:htons(),意思为“Host to Network Short”。当某数据必须按照NBO顺序,要调用函数(例如 htons())来将它从本机字节顺序(Host Byte Order)转换过来。 类似的还有: htons() Host to Network Short htonl() Host to Network Long ntohs() Network to Host Short ntohl() Network to Host Long 需要说明的是,在数据结构struct sockaddr_in中,sin_addr和sin_port 需要转换为网络字节顺序,而sin_family不需要。原因是sin_addr和sin_port分别封装在IP和UDP层,因此,它们必须是网络字节顺序。但是sin_family域只是被主机使用来决定在数据结构中包含什么类型的地址,所以它必须是本机字节顺序。同时sin_family没有发送到网络上,可以是本机字节顺序。 L6. IP点数形式 假设已经有一个sockaddr_in结构体ina,有一个IP地址“132.241.5.10”需要储存在其中,就要用函数inet_addr()将IP地址从点数格式转换成无符号长整型。使用方法如下: ina.sin_addr.s_addr = inet_addr(132.241.5.10); 注意,inet_addr()返回的地址已经是网络字节格式,所以无须再调用函数htonl()。 当inet_addr()发生错误时返回-1。上面的代码并不完整,编程时要先进行错误检查。 还可以将一个in_addr结构体输出成点数格式,要用到inet_ntoa()函数(“network to ascii”

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档