大佬教程收集整理的这篇文章主要介绍了WINDOWS网络API总结,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一:WinSock API
WSAStartup,getaddrinfo,socket,connect,send,recv,WSAGetLastError
二:WinINet API
InternetOpen:初始化一个应用程序,以使用 WinINet 函数
InternetConnect:建立 Internet 的连接,成功返回非0。如果返回0。要InternetCloseHandle释放这个句柄
InternetOpenURL:通过一个完整的FTP、http的URL打开资源
InternetReadFile,InternetWriteFile
httpOpenrequest:一旦和服务器的连接已经建立,我们打开了想要的文件。httpOpenrequest和httpOpenrequest一起工作打开文件。httpOpenrequest去创建个请求句柄并且把参数存储在句柄中。httpSendrequest把请求参数送到http服务器
使用样例举例如下:
https://blog.csdn.net/DebugFan/article/details/7549747
代码有改动:
// WinINet.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <windows.h> #include <wininet.h> #pragma comment(lib,"wininet.lib") BOOL httpDump(const TCHAR *lpszServerName,int iPort,const TCHAR *lpszObjectName) { TCHAR cBuf[2048]; DWORD dwRead; HINTERNET hINet = NULL,hConnection = NULL,hrequest = NULL; __try { hINet = InternetOpen(L"httpDump/1.0",INTERNET_OPEN_TYPE_PRECONfig,NULL,0); if (hINet == NULL) { printf("InternetOpen Failed. Error code: %d\n",GetLastError()); return false; } hConnection = InternetConnect(hINet,lpszServerName,iPort,L" ",INTERNET_serviCE_http,0); if (hConnection == NULL) { printf("InternetConnect Failed. Error code: %d\n",GetLastError()); return false; } hrequest = httpOpenrequest(hConnection,L"GET",lpszObjectName,INTERNET_FLAG_KEEP_CONNECTION,0); if (hrequest == NULL) { printf("httpOpenrequest Failed. Error code: %d\n",GetLastError()); return false; } if (httpSendrequest(hrequest,0) == 0) { printf("httpSendrequest Failed. Error code: %d\n",GetLastError()); return false; } printf("Dump:\n"); do { if (InternetReadFile(hrequest,cBuf,sizeof(cBuf)-1,&dwRead)) { printf("InternetReadFile Failed. Error code: %d\n",GetLastError()); return false; } else { if (dwRead == 0) { break; } else { cBuf[dwRead] = 0; printf("%s",cBuf); } } } while (true); printf("\nEnd Dump\n"); return TRUE; } __finally { if (hrequest) { InternetCloseHandle(hrequest); } if (hINet) { InternetCloseHandle(hINet); } if (hConnection) { InternetCloseHandle(hConnection); } } return falSE; } int _tmain(int argc,_TCHAR* argv[]) { if (httpDump(L"www.baidu.com",80,L"")) { printf("httpDump OK\n"); } else { printf("httpDump Failed\n"); } return 0; }
结果是这样的:
httpSendrequest Failed. Error code: 12029
httpDump Failed
查询了一下12029:ERROR_INTERNET_CAnnOT_CONNECT:The attempt to connect to the server Failed.
估计是这么玩baidu是没有权限的吧~~~
三:COM接口
URLDownloadToFile:文件下载
CoInitialize:用来告诉 Windows以单线程的方式创建com对象
CoCreateInstance:函数名。用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象
以上是大佬教程为你收集整理的WINDOWS网络API总结全部内容,希望文章能够帮你解决WINDOWS网络API总结所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。