命令行窗口中用telnet测试HTTP协议请求消息格式响应消息格式1. 命令行窗口中用telnet测试HTTP协议 HTTP消息是由普通ASCII文本组成。消息包括消息头和数据体部分。消息头以行为单位,每行以CRLF(回车和换行)结束,消息头结束后,额外增加一个CRLF,之后内容就是数据体部分了。我 Read More
posted @ 2017-09-01 23:41 findumars Views(3435) Comments(0) Diggs(0)
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程: 1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发 Read More
posted @ 2017-09-01 23:40 findumars Views(590) Comments(0) Diggs(0)
许多虚拟机的初学者,都会询问这样一个问题:在虚拟机中怎样上网、和主机上网有什么区别?要弄清这个问题,需要先知道“主机是怎么上网的”,根据主机上网的方法,再理解或设置虚拟机上网的方法。综合来说,主机上网,无非有两种:一种是拨号上网,另一种是不需要拨号上网。拨号上网,包括家庭ADSL拨号上网、小区宽带拨 Read More
posted @ 2017-09-01 23:11 findumars Views(1342) Comments(0) Diggs(0)
1,永远不能忘记傅立叶变换。 Never far no can forget Fuliye changer. 2,盲目的研究者就像法拉第和麦克斯韦之间的电学家一样无所适从。 Blind Eye's researcher is like the electrical experts between F Read More
posted @ 2017-09-01 23:04 findumars Views(573) Comments(0) Diggs(0)
大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样 Read More
posted @ 2017-09-01 22:48 findumars Views(479) Comments(0) Diggs(0)
编译步骤参考: http://doc.qt.io/qt-5/linux.html 我们使用源代码和编译目录分离的编译方式, 这样避免编译主机系统和目标系统间的独立. 参考: Qt Configure Options | Qt 5.5 编译选项: ../../qt-everywhere-opensou Read More
posted @ 2017-09-01 22:45 findumars Views(1178) Comments(0) Diggs(0)
1.下载go 官网下载地址(需要FQ)golang 中国镜像网站下载golangtc 下载go1.5.1.darwin-amd64.tar.gz包,解压得到一个Go目录,把go目录移动到你想要的路径下,我这里是放在~/Documents/go这个路径下的 2.配置环境变量 打开终端使用命令vim . Read More
posted @ 2017-09-01 22:42 findumars Views(1359) Comments(0) Diggs(0)
使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefile,而且换个编译环境,Makefile还需要修改(Eclipse也是这样)。 这么好的东东当然要拿 Read More
posted @ 2017-09-01 22:37 findumars Views(600) Comments(0) Diggs(0)
Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件。最后,你可以用所学知识编写自己的Windows 服务 Read More
posted @ 2017-09-01 22:33 findumars Views(925) Comments(0) Diggs(0)
服务器通讯原理就是一台socket服务器A,另一台socket客户端B,现在如果要通讯的话直接以流方式写入或读出。 这样能实现通讯,但有个问题。如何知道更多信息?比如需要发送流大小,编码,Ip等。 这样就有了协议,协议就是规范,就是发送的流中携带了很多的内容。 RPC的实现就是一种规范。可参考htt Read More
posted @ 2017-09-01 22:29 findumars Views(1301) Comments(0) Diggs(0)
libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述。 高性能网络编程这个话题已经被讨论烂了。异步,异步,还是异步。不管是 epoll 也好,kqueue 也罢,总是免不了异步这个话 Read More
posted @ 2017-09-01 22:23 findumars Views(1098) Comments(0) Diggs(0)
1. zlog 是个很好的写程序日志的库,功能比较强大,上手快。 2. 下载地址:https://github.com/bmanojlovic/zlog 3. cd 到文件夹下,对 autogen.sh 添加可执行权限:chmod +x autogen.sh 然后执行:./autogen.sh 如果 Read More
posted @ 2017-09-01 00:36 findumars Views(1858) Comments(0) Diggs(0)
1. 下载源码:http://dist.libuv.org/dist/ 我下载的是 v1.8.0 版本,打开可看见四个文件,如下: 说明:.tar.gz 版本的是可以在Linux和Windows下编译的源码文件,以 .exe 结尾的是安装文件,Windows下根据自己的需要选择。但是要强调的是,.e Read More
posted @ 2017-09-01 00:35 findumars Views(834) Comments(0) Diggs(0)
1. Asio是一个跨平台的C++库,用于网络和底层I/O编程。Asio使用先进的C++方式提供了一系列的异步模型 2. 官方网址:http://think-async.com 3. 由于Asio库有些是依赖Boost库的头文件,所以编译的时候要指定Boost头文件路径,所以我们也要下载 Boost Read More
posted @ 2017-09-01 00:33 findumars Views(2525) Comments(0) Diggs(0)
1. 环境: Linux系统:Ubuntu 14.04 编译工具:arm-fsl-linux-gnueabi-gcc 2.下载boost源码: 地址:https://sourceforge.net/projects/boost/files/boost/ 3. 编译: 1)解压,cd 到目录 --sh Read More
posted @ 2017-09-01 00:32 findumars Views(12853) Comments(0) Diggs(1)