代码拉取完成,页面将自动刷新
#pragma once
#include <stdio.h>
//初始化用于监听套接字
int initListenFd(unsigned short port);
//启动 epoll 服务器程序
int epollRun(int lfd);
//和客户端建立连接的函数
//int acceptClient(int lfd,int epfd);
void* acceptClient(void* arg);
//接收http请求
//客户端发送完数据就会断开连接,也就意味着我们不需要对该文件描述符进行监听了
//因此我们还需要epoll实例,通过这个epoll实例去红黑树上删除这个客户端所对应的文件描述符
//int recvHttpRequest(int cfd,int epfd);
void* recvHttpRequest(void* arg);
//解析请求行
int parseRequestLine(const char* line,int cfd);
//发送文件
int sendFile(const char* fileName,int cfd);
//发送响应头(状态行+响应头)
/*
状态行就两部分:
参数status:http状态码
参数desc:http状态描述
响应头就是一堆键值对,这里我们只写比较重要的两个:一个是Content-type,一个Content-length
参数type:响应头Content-type的值
参数length:响应头Content-length的值
*/
int sendHeadMsg(int cfd,int status,const char* desc,const char* type,int length);
//根据文件名后缀获得其对应的响应头中的Content-type值
const char* getFileType(const char* name);
//发送目录
int sendDir(const char* dirName,int cfd);
//解决Linux转义get请求中特殊字符的编码问题
int hexToDec(char c);
void decodeMsg(char* to,char* from);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。