翻到一份去年自己实现的http服务器,编译环境为VC6.0,
用纯C编写,本来想完善以后才发出来的,结果拖延症发作......
ps:代码仅供学习
工程下载: http://download.csdn.net/detail/wailovet/7945827
main.h
________________________
ps:代码仅供学习
工程下载: http://download.csdn.net/detail/wailovet/7945827
main.h
________________________
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include <winsock2.h>
#include <windows.h> //包含文件
#pragma comment(lib, "ws2_32.lib") //静态编译
#define CONFIG_FILE "./config"
#define MAXDATA 512
typedef struct {
char url[256];
char dir[256];
char host[256];
char accept[256];
char accept_language[64];
char content_type[64];
char cookie[256];
} RequestHeaders ;
struct {
char root_path[256];
char default_file[64];
int server_port;
} Config ;
DWORD WINAPI Thread(LPVOID lpParam);//等待连接进程
//功能 将接收到的http头信息解析到结构RequestHeaders
//参数 RequestHeaders为接受http请求头信息,str为字符串形式的头信息,socket为当前连接客户字符串
//返回值 0为正常,1为出现异常
int strToRequestHeaders(RequestHeaders *rh,char *str,int socket);
//功能 根据http请求信息发送指定文件
//参数 socket为当前连接客户字符串,RequestHeaders为接受http请求头信息
//返回值 0为正常发送,-1为文件打开失败
int sendFile(int socket,RequestHeaders rh);
//功能 加载http服务器