Windows   发布时间:2022-05-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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服务器

httpQueryInfo:用来查询一个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,请注明来意。