从零开始一个http服务器 (二) 代码地址 : https://github.com/flamedancer/cserver git checkout step2 解析http request 观察收到的http数据 解析 request 的 method url version 解析 header 解析 body 观察收到的http数据 上一节我们完成了一个简单的基于TCP/IP的socket server 程序.而HTTP正式基于TCP/IP的应用层协议,所以只要我们的程序能读懂HTTP数…
//start from the very beginning,and to create greatness //@author: Chuangwei Lin //@E-mail:979951191@qq.com //@brief: 服务器SHTTPD请求方法解析 #include "lcw_shttpd.h" /****************************************************** 函数名: Method_DoGet(struct worker…
从零开始一个http服务器(六)-多路复用和压力测试 代码地址 : https://github.com/flamedancer/cserver git checkout step6 运行: make clean && make && ./myserver.out 测试 浏览器打开 http://127.0.0.1:9734/action/show_date 多路复用和压力测试 多路复用 压力测试 多路复用 多路复用意义 到目前为止,服务器的基本业务功能我们是实现了.但好的…
从零开始一个http服务器(三) 代码地址 : https://github.com/flamedancer/cserver git checkout step3 运行: gcc request.h request.c response.h response.c main.c tools/utils.c tools/utils.h && ./a.out 测试: 浏览器打开 http://127.0.0.1:9734/ response 构造 观察response结构 定义并返回respon…
从零开始一个http服务器(四) 代码地址 : https://github.com/flamedancer/cserver git checkout step4 运行: make clean && make && ./myserver.out 测试: 浏览器打开 http://127.0.0.1:9734/ response 返回文件 根据request 动态返回 response Makefile 读取文件内容并作为body返回 列出目录下文件 Makefile 看看我…
从零开始一个http服务器-模拟cgi(五) 代码地址 : https://github.com/flamedancer/cserver git checkout step5 运行: make clean && make && ./myserver.out 测试 浏览器打开 http://127.0.0.1:9734/action/show_date 模拟cgi:用外部程序来优化 动态 response cgi解释 调用外部程序 cgi解释 上一节中,我们确实是实现了动态的…
从零开始一个http服务器 (一) 代码地址 : https://github.com/flamedancer/cserver git checkout step1 一个简单的socket server 从helloworld开始 回顾c语言的socket 通信 一个简单的socket server 用telent测试 从helloworld 开始 先来回顾下c语言的,c语言的helloword程序如下 // main.c #include<stdio.h> int main() { prin…
一,项目题目:基于线程开发一个FTP服务器 二,项目要求: 基本要求: 1.用户加密认证   2.允许同时多用户登录   3.每个用户有自己的家目录 ,且只能访问自己的家目录   4.对用户进行磁盘配额,每个用户的可用空间不同   5.允许用户在ftp server上随意切换目录   6.允许用户查看当前目录下文件   7.允许上传和下载文件,保证文件一致性(md5)   8.文件传输过程中显示进度条   9.附加功能:支持文件的断点续传 扩展需求: 作业需求:   1.在之前开发的FTP基础上…
前段日子一直在做公司的DNS调度程序,不过由于性能比较差,方案最终废弃掉了.两个半月心血,不想白白浪费掉,于是改了改,把商业秘密相关的部分去掉,变成了一个公共的DNS服务器.其实说的简单点,就是一个可以做DNS解析和应答的程序(废话,DNS服务器不就是干这个的).功能比较简单,只做了A地址和CNAME的解析,安全性不涉及,性能也没有测试过,因为本身是个玩具,测性能没有意义(理论上如果用pypy的话,水平一般的机器也能跑到1万以上的QPS).本程序多处借鉴了 isnowfy 同学的程序(相关博客:…
本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Request很复杂的想法.但看了Alamofire中Request.swift中的代码,Request被设计的又是如此的简单,这就是为什么这些顶级框架如此让人喜爱的原因. 在后续的文章中,我会单独写一篇Swift中协议的使用技巧,在Alamofire源码解读系列(一)之概述和使用这篇的Alamofire…