C 编程实现 http 协议
发布日期:2009-03-13 来源:互联网 作者:佚名
大家都很熟悉 HTTP 协议的应用,因为每天都在网络上浏览着不少东西,也都知道是
HTTP 协议是相当简单的。每次用到 FlashGet 之类的下载软件下载网页,当用到那个“用
FlashGet 下载全部链接”时总觉得很神奇。
后来想想,其实要实现这些下载功能也并不难,只要按照 HTTP 协议发送 request,然后对
接收到的数据进行分析,如果页面上还有 href 之类的链接指向标志就可以进行深一层的下
载了。HTTP 协议目前用的最多的是 1.1 版本,要全面透彻地搞懂它就参考 RFC2616 文档
吧。
下面是我用 C 语言编程写的一个 http 下载程序,希望对大家有些启发。源代码如下:
/******* http 客户端程序 httpclient.c ************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <unistd.h>
#include <netinet/in.h>
#include <limits.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <ctype.h>
//////////////////////////////httpclient.c 开始///////////////////////////////////////////
/********************************************
功能:搜索字符串右边起的第一个匹配字符
********************************************/
char * Rstrchr(char * s, char x) {
int i = strlen(s);
if(!(*s)) return 0;
while(s[i-1]) if(strchr(s + (i - 1), x)) return (s + (i - 1)); else i--;
return 0;
}
/********************************************
功能:把字符串转换为全小写
********************************************/
void ToLowerCase(char * s) {
while(*s) *s=tolower(*s++);
}
- 1
- 2
前往页