一步一步实现HTTP服务器-开篇
缘起
翻开清单,一条条计划一直列在那里,一天又一天,不知道什么时候写下了它,也知不道什么时候完成它,它一直在那静静的等待着。
静下心来,反思自己,才发现自己是多么的无知,多么的没有毅力。设定了无数目标,指定了无数计划,但是到头来呢?都是在无尽的叹息中,放弃了定下的目标。坚持 只是每天不断在内心回响的口号,想起了,就猛地觉醒,要进步、要努力、要坚持、要有目标。但是每每都是拿出计划本亦或是打开清单软件,写下一条有一条的学习计划、读书清单、锻炼计划。写时情绪高昂,“我一定要...”、“我必须要...”、“再不...就要...”、"坚持就能..."。三天打鱼两天晒网,刚开始的激情也就够几天的热乎劲,后面总是再不断给自己找借口,因为这样、因为那样导致我没办法坚持。但是究其原因,还是自己意志力薄弱亦或是没有理清自己的目标到底是什么?
每每鞭策自己,要每天进步一点点,不然要被时代的浪潮抛在沙滩上,但是每次都没懒惰的内心放弃了一个有一个目标,从现在开始我决定转变,不再列那些只存在清单中的计划,不再设置那些设定了就没有去再看一样的目标,从当下出发,知行合一,定了计划就撸起袖子,加油干
计划
一直想系统学习网络编程,一直也是东看看西学学,没有形成系统,同时实践也太少,导致一边不断的再学习,一边不断的还回去。此次通过一步一步实现一个HTTP服务器,来学习理解TCP,HTTP网络协议、理解Socket编程原理、深入学习C++的一些新特性、将Boost使用库用于实践同时开发出一个支持高并发的服务端程序;同时做到跨平台,也借此熟悉下Linux编程。
目录
该系列文章大概沿着如下主线进行:
- TCP/IP协议讲解
- 系统Socket编程介绍
- 并发支持的TCP服务端程序
- TCP客户端程序
- 封装服务端程序库,方便后期重复利用
- HTTP协议介绍
- HTTP服务器开发
- 支持PHP
- 封装HTTP服务器接口
此处系列文章,保障定期更新,大概频率3~4天一篇,通过此处开设博文自己系统学习网络编程,同时也分享自己的学习过程,目标是开发出一个支持高并发的HTTP服务器库,再不断丰富它。
欢迎关注交流共同进步
一步一步实现HTTP服务器-开篇的更多相关文章
- 一步一步开发Game服务器(四)地图线程
时隔这么久 才再一次的回归正题继续讲解游戏服务器开发. 开始讲解前有一个问题需要修正.之前讲的线程和定时器线程的时候是分开的. 但是真正地图线程与之前的线程模型是有区别的. 为什么会有区别呢?一个地图 ...
- 一步一步开发Game服务器(三)加载脚本和服务器热更新(二)完整版
上一篇文章我介绍了如果动态加载dll文件来更新程序 一步一步开发Game服务器(三)加载脚本和服务器热更新 可是在使用过程中,也许有很多会发现,动态加载dll其实不方便,应为需要预先编译代码为dll文 ...
- 一步一步开发Game服务器(一)
什么是服务器?对于很多人来说也许只是简单成为在服务器端运行的程序的确如此,服务器通常意义就是说在服务器端运行的程序而已.那么我们怎么理解和分析游戏服务器哪? 传统意义上来说,程序运行后,正常流程, 启 ...
- 一步一步搭建客服系统 (2) 如何搭建SimpleWebRTC信令服务器
上次介绍了<3分钟实现网页版多人文本.视频聊天室 (含完整源码)>使用的是default 信令服务器,只是为了方便快速开始而已.SimapleWebRTC官方文档里第一条就讲到,不要在生产 ...
- 【DG】[三思笔记]一步一步学DataGuard
[DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)..... ...
- 一步一步学习GTK
完成课设,偶然碰到GTK,索性学习一遍 转载自ikoDotA の BLOG (一).一步一步学GTK+之开篇 一.什么是GTK+ GTK+ 是一种函数库是用来帮助制作图形交互界面的.整个函数库都是由C ...
- 12.Linux软件安装 (一步一步学习大数据系列之 Linux)
1.如何上传安装包到服务器 有三种方式: 1.1使用图形化工具,如: filezilla 如何使用FileZilla上传和下载文件 1.2使用 sftp 工具: 在 windows下使用CRT 软件 ...
- 一步一步学ROP之linux_x86篇
一步一步学ROP之linux_x86篇 作者:蒸米@阿里聚安全 一.序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过 ...
- 大流量网站性能优化:一步一步打造一个适合自己的BigRender插件
BigRender 当一个网站越来越庞大,加载速度越来越慢的时候,开发者们不得不对其进行优化,谁愿意访问一个需要等待 10 秒,20 秒才能出现的网页呢? 常见的也是相对简单易行的一个优化方案是 图片 ...
随机推荐
- centos 系统时间的同步
1.当你的网站架构涉及到多台服务器的时候,服务器之间的时间必须得同步,这样就涉及到了程序的时间的准确性问题,特别是跟时间相关的操作和系统本身的定时任务. 2.时间同步工具:ntpdate,安装方式:y ...
- Linux管理日记(三)
23. 时间同步 同步时间可以使用 root 执行如下命令完成: rdate -s time.nist.gov 如果需要自动同步,可以采用crontab自动调度,每小时执行一次: 编辑 cronta ...
- Order&Shipping Transactions Status Summary
Order&Shipping Transactions Status Summary Step Order Header Status Order Line Status Order Flow ...
- Systemc在VC++2010安装方法及如何在VC++2010运行Noxim模拟器
Systemc在VC++2010的安装方法可以参考文档"Systemc with Microsoft Visual Studio 2008.pdf".本文档可以在"htt ...
- Gradle 1.12用户指南翻译——第三十五章. Sonar 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- Eclipse修改工程名字
1:修改项目目录下:.project文件 <?xml version="1.0" encoding="UTF-8"?> <projectDes ...
- git rebase之前需要commit才行
更新好本地代码后,git fetch, 接着合并,但是git rebase 不行, git status一看,有很多更新的文件. 于是 git add --后,再rebase,还是不行. 注意,reb ...
- 棋盘的完美覆盖问题,c++代码实现
#include "stdafx.h" #include<iostream> #include<iomanip> using namespace std; ...
- Mysql安装和登录相关操作
一.mysql的下载和安装 1.下载链接地址 http://dev.mysql.com/downloads/mysql/ 安装如下操作进行下载. 2.mysql数据库安装(Windows环境) 1.解 ...
- Hadoop的Python框架指南
http://www.oschina.NET/translate/a-guide-to-Python-frameworks-for-Hadoop 最近,我加入了Cloudera,在这之前,我在计算生物 ...