HTTP协议的C语言编程实现实例

这篇博客展示了如何用C语言编程实现一个简单的HTTP协议客户端,该程序可以从指定URL下载网页内容。通过分析URL获取网站地址、端口和文件名,然后建立TCP连接,发送HTTP GET请求并接收响应,将内容保存到本地文件。

大家都很熟悉HTTP协议的应用,因为每天都在网络上浏览着不少东西,也都知道是HTTP协议是相当简单的。每次用到FlashGet之类的下载软件下载网页,当用到那个“用FlashGet下载全部链接”时总觉得很神奇。

后来想想,其实要实现这些下载功能也并不难,只要按照HTTP协议发送request,然后对接收到的数据进行分析,如果页面上还有href之类的链接指向标志就可以进行深一层的下载了。HTTP协议目前用的最多的是1.1版本,要全面透彻地搞懂它就参考RFC2616文档吧。

下面是我用C语言编程写的一个http下载程序,希望对大家有些启发。源代码如下:


[cpp]  view plain copy
  1. #include <stdio.h>   
  2. #include <stdlib.h>   
  3. #include <string.h>   
  4. #include <sys/types.h>   
  5. #include <sys/socket.h>   
  6. #include <errno.h>   
  7. #include <unistd.h>   
  8. #include <netinet/in.h>   
  9. #include <limits.h>   
  10. #include <netdb.h>   
  11. #include <arpa/inet.h>   
  12. #include <ctype.h>   
  13.   
  14. //////////////////////////////httpclient.c 开始///////////////////////////////////////////  
  15.   
  16. /******************************************** 
  17. 功能:搜索字符串右边起的第一个匹配字符 
  18. ********************************************/  
  19. char * Rstrchr(char * s, char x)  {  
  20.   int i = strlen(s);  
  21.   if(!(*s))  return 0;  
  22.   while(s[i-1]) if(strchr(s + (i - 1), x))  return (s + (i - 1));  else i--;  
  23.   return 0;  
  24. }  
  25.   
  26. /******************************************** 
  27. 功能:把字符串转换为全小写 
  28. ********************************************/  
  29. void ToLowerCase(char * s)  {  
  30.   while(*s)  *s=tolower(*s++);  
  31. }  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值