C 语言实现一个简单的 web 服务器

小微 科技C 语言实现一个简单的 web 服务器已关闭评论117字数 1342阅读模式
摘要说到 web 服务器想必大多数人首先想到的协议是 http,那么 http 之下则是 tcp,本篇文章将通过 tcp 来实现一个简单的 web 服务器。本篇文章将着重讲解如何实现,...

说到 web 服务器想必大多数人首先想到的协定是 http,那么 http 之下则是 tcp,本篇文章将通过 tcp 来实现一个简单的 web 服务器。

本篇文章将侧重讲授怎么实现,对于 http 与 tcp 的概念本篇将无非多讲授。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

一、了解 Socket 及 web 服务工作原理

既然是基于 tcp 实现 web 服务器,不少学习 C 语言的小火伴可能会很快的想到套接字 socket。socket 是一个较为抽象的通讯过程,或者说是主机与主机进行信息交互的一种抽象。socket 可以将数据流送入网络中,也能够接管数据流。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

socket 的信息交互与本地文件信息的读取从表面特征上看相似,但其中所存在的编写繁杂度是本地 IO 不能比拟的,但却有类似点。在 win 下 socket 的交互交互步骤为:WSAStartup 进行初始化--> socket 创立套接字--> bind 绑定--> listen 监听--> connect 连接--> accept 接管要求--> send/recv 发送或接管数据--> closesocket 关闭 socket--> WSACleanup 终究关闭。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

了解完了一个 socket 的基本步骤后咱们了解一下一个基本 web 要求的用户常规操作,操作分为:打开阅读器-->输入资源地址 ip 地址-->得到资源。当目标服务器接管到该操作发生掉要求后,咱们可以把服务器的响应流程步骤看为:取得 request 要求-->得到要求关键数据-->获取关键数据-->发送关键数据。服务器的这一步流程是在启动socket 进行监听后才能响应。通过监听得知接管到要求,使用 recv 接管要求数据,从而依据该参数得到进行资源获取,最后通过 send 将数据进行返回。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

二、创立sokect完成监听

2.1 WSAStartup初始化文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

首先在c语言头文件中引入依赖 WinSock2.h:文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

39;\\0&include<WinSock2.h>
39;\\0&34;text/html&34;text/plain&34;Content-Length:&34;HTTP/1.1200OK\\r\\n&34;Content-type:text/html\\r\\n&include <sys/stat.h>使用fstat,且向已连接的通讯产生必要的信息 :文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

//获取文件描写
structstatstatbuf;
charread_buf[1024];
charlength_buf[20];
fstat,&statbuf);
itoa;
send,0);
send,0);文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

send;
send;

最后发送数据:文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

//·数据发送
charread_buf[1024];
len=fread;
if==-1){
printf;
}

最后走访地址 http://127.0.0.1:8080/index.html,得到当前目录下 index.html 文件数据,并且在阅读器渲染:文章源自微观生活(93wg.com)微观生活-https://93wg.com/6306.html

所有代码如下:

include<stdio.h>
34;text/html&34;text/plain&34;Content-Length:&34;HTTP/1.1200OK\\r\\n&34;Content-type:text/html\\r\\n&39;\\0&

以上就是微观生活(93wg.com)关于“C 语言实现一个简单的 web 服务器”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/6306.html