- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WinInet与网络协议实现.doc
第七章 WinInet与网络协议实现
一、基础知识
主要用来做客户端程序,和Internet服务器连接,而不考虑基本的通信协议。
大多数使用HINTERNET句柄,并被安排在一个树体系中,可继承属性,如异步设置,关闭句柄其分支也关闭。
二、常用Internet函数和WinInet API
HINTERNET InternetOpen(
IN LPCSTR lpszAgent, //调用Internet函数的应用名字
IN DWORD dwAccessType, //访问类型,如配置,是否需要代理等
IN LPCSTR lpszProxyName, //代理名,为NULL则从注册表中取
IN LPCSTR lpszProxyBypass, //不经代理的主机名或IP列表,NULL从注册表取
IN DWORD dwFlags //异步、缓冲、离线等选项
); //初始化WinInet库,且返回一对话句柄
BOOL InternetSetOption(
IN HINTERNET hInternet, //对话句柄
IN DWORD dwOption, //选项
IN LPVOID lpBuffer, //选项设置缓冲区
IN DWORD dwBufferLength //缓冲区长度
); //
INTERNET_OPTION_CALLBACK 句柄所指的返回函数的地址
INTERNET_OPTION_CONNECT_TIMEOUT 连接请求的超时时间ms
INTERNET_OPTION_CONNECT_RETRIES 重试连接请求的次数
INTERNET_OPTION_CONNECT_BACKOFF 两次重试连接请求之间等待的延迟
INTERNET_OPTION_DATA_SEND_TIMEOUT
INTERNET_OPTION_DATA_RECEIVE_TIMEOUT
INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT 从FTP对话接收控制信息的超时时间
INTERNET_OPTION_CONTROL_SEND_TIMEOUT 从FTP对话发送控制信息的超时时间
INTERNET_OPTION_PASSWORD 由InternetConnect()创建的句柄的口令
INTERNET_OPTION_READ_BUFFER_SIZE 读取数据缓冲区大小
INTERNET_OPTION_WRITE_BUFFER_SIZE 写数据缓冲区大小
此外还有函数InternetSetOptionEX,扩充了一些功能,但是没有实现。
BOOL InternetQueryOption(
IN HINTERNET hInternet,
IN DWORD dwOption,
OUT LPVOID lpBuffer,
IN OUT LPDWORD lpdwBufferLength
);
如查询INTERNET_OPTION_HANDLE_TYPE返回可能是:
INTERNET_OPTION_HANDLE_TYPE_INTERNET
INTERNET_OPTION_HANDLE_TYPE_CONNECT_FTP
INTERNET_OPTION_HANDLE_TYPE_CONNECT_HTTP等
查询INTERNET_OPTION_PARENT_HANDLE返回父句柄
查询INTERNET_OPTION_KEEP_CONNECTION表明该句柄是否使用永久性连接
INTERNET_KEEP_ALIVE_UNKOWN
INTERNET_KEEP_ALIVE_ENABLED
INTERNET_KEEP_ALIVE_DISABLED
查询INTERNET_OPTION_REQUEST_FLAGS返回有关当前下载的一些标志,比如SSL/PCT服务器认证的信息
DWORD InternetAttemptConnect(
IN DWORD dwReserved
); //连接确认
HINTERNET InternetConnect(
IN HINTERNET hInternetSession,
IN LPCSTR lpszServerName, //服务器名或IP地址
IN INTERNET_PORT nServerPort,
IN LPCSTR lpszUsername,//用户名,若为空对于FTP是anonymous,对于HTTP会出错
IN LPCSTR lpszPassword,
IN DWORD dwService,//指定连接对象,可以
文档评论(0)