VC实现简单Http连接

本文介绍了一个基于Winsock的HTTP客户应用程序的实现方法。通过VC5.0环境下的示例,展示了如何使用Windows Socket API连接到HTTP服务器,并下载指定路径上的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VC实现简单Http连接

关键字/核心提示:连接,实现,简单,
一、引言WindowsSocketAPI是一套开放的、支持多种协议的Windows下的网络编程接口,它包括一个标准的BerkeleySocket功能调用的集合,以及为Windows所作的重要扩充。WindowsSocket经过不断完善并在众多公司的全力支持下,已成为Windows网络编程的事实上的标...

一、引言

----WindowsSocketAPI是一套开放的、支持多种协议的Windows下的网络编程接口,它包括一个标准的BerkeleySocket功能调用的集合,以及为Windows所作的重要扩充。WindowsSocket经过不断完善并在众多公司的全力支持下,已成为Windows网络编程的事实上的标准。

----本文将在VC 5.0环境下介绍一个基于Winsock的HTTP客户应用程序。读者可以基于本例同样的原理实现其他Internet常用协议(time,SMTP,POP3,Telnet,FTP等)的客户应用程序。

二、一个简单的浏览器

----我将创建一个简单的浏览器,以说明如何通过Winsock基于HTTP协议实现HTTP客户应用程序。

----首先我将创建一个帮助函数LogFile(),该函数把传递给它的字符串写到磁盘文件中。然后再创建本示例的核心函数--HttpClient()。在这个核心函数中,我将通过Winsock连接到HTTP服务器上(本例中我将使用计算机世界日报168.160.224.185)。当连接成功后,发送Get命令到HTTP服务器去下载指定路径上(/99/tips/)的文件。通过帮助函数LogFile()把下载的数据记录到本地磁盘文件中。

charfname[MAXPATH];
voidLogFile(char*p)
{
FILE*fp=fopen(fname,"a ");
fprintf(fp,"s",p);
fclose(fp);
}

BOOLHttpClient(void)
{
WSADATAws;
SOCKETs;
structsockaddr_inaddr;

intiResult;
longlResult;
charstrSubAddr[100],strBuffer[100];

lResult=WSAStartup(0x0101,&ws);
s=socket(AF_INET,SOCK_STREAM,0);

addr.sin_family=AF_INET;
addr.sin_port=htons(80);
addr.sin_addr.s_addr=inet_addr
("168.160.224.185");//计算机世界日报
iResult=connect(s,(structsockaddr*)
&addr,sizeof(addr));
if(SOCKET_ERROR==iResult)
{
//连接失败
WSACleanup();
returnFALSE;
}
else{
//连接成功
strcpy(strSubAddr,"GET/99/tips/");
strcpy(fname,"index.htm");
iResult=send(s,strSubAddr,strlen(strSubAddr),0);

//下载文件
do{
strset(strBuffer,'');
iResult=recv(s,strBuffer,sizeof(strBuffer),0);
LogFile(strBuffer);
}while(iResult!=0);
}

WSACleanup();
returnTRUE;
}

三、测试

----打开VisualC 5.0,用MFC创建基于对话框的工程Test,并在对话框上放置"Test"按钮,然后添加测试代码。

VoidCTestDlg::OnTest()
{
HttpClient();
}

----编译并运行该测试程序,在测试对话框中,单击"Test"按钮,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值