Linux下 C/C++ 实现简易web服务器

本文展示了如何在Linux使用Eclipse开发环境构建一个简单的Web服务器。提供了包含WebServer.h、WebServer.cpp和main.cpp在内的源代码,并提到了index.html作为服务器响应的基本页面。该实现目前为基础版本,未来计划扩展更多功能。

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

在Linux环境中,Eclipse开发环境中生成web服务器下面是全部的代码,其中有注释,可以很容易理解:

WebServer.h 头文件:

#ifndef _WEBSERVER_H_
#define _WEBSERVER_H_

#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>

#include <unistd.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>

typedef struct sockaddr sockSA;
typedef struct sockaddr_in SockAdr;

// 请求
typedef struct request{
   
    char cMethod[16];
    char cPath[256];
    char cProto[16];
}req_t;

// 响应
typedef struct response{
   
    int   nCode;	// 404   200
    char  *cType; 	// 文件后缀类型
    req_t *req;	 	// 请求
}res_t;


int Sock_bind(int nPort);				// 绑定端口

void get_request(int fd,req_t *rq);		// 获取请求
void response_b_404(int fd);			// 响应
char *get_FileType(const char *pcFile);	// 获取文件类型
void do_client(res_t *rs);				// 处理数据,根据读取到的数据,做业务
void response_b_200(int fd,res_t *rs);	// 响应
void response_b(int fd,res_t *rs);		// 响应客户端

void doit(int fd);						// 业务处理

#endif

WebServer.cpp 文件:

#include "WebServer.h"
#include <iostream>
using namespace std;

// *.html文件所在路径
char *cDir ="/home/WebServer/html";

// 绑定端口
int Sock_bind(int nPort)
{
   
	int nSocketNumber = 0;
	SockAdr serv;// 具体的ipv4地址
	// 创建一个通讯设备
	nSocketNumber = socket(AF_INET,SOCK_STREAM,0
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值