网络编程——http服务器代码的解读

网络编程——http服务器代码的解读
下载小型http服务器代码程序,用sourinsight进行代码跟踪和分析
httpd服务器代码下载源:1)百度搜索tinyhttpd,进入官网进行下载:http://tinyhttpd.sourceforge.net/

解析及应用:
1,打开sourceinsight,选择project——>new project

导入tinyhttpd程序包。如下,共四个文件

2,开始追踪代码,进行分析其设计的相关网络编程的思路。
分析步骤:main——>startup——>accept——>accepts_request
startup:包含了bind,listen;可仔细分析其实和我们socket网络编程步骤一样。
accept_request:包含了get_line,serve_file——>header,excute_cgj——>send等函数功能。
慢慢分析整个小型的tinyhttpd服务器,你会发现一个http服务器的实现也就那么回事。
3,我们可以将整个tinyhttpd服务器代码拷贝到,编译器里进行编译,就可以进行测试了。我者里拷贝到我的ubuntu下,然后用gcc进行编译。
拷贝的代码文件目录如下:

4,运行,make进行编译,此时发现无法通过,如下:

原因是因为这个tinyhttpd服务器是别人编写的,要包含一下不同版本的thread头文件。而我们的系统上没有,所以我们可以用gcc -o httpd httpd.c -lpthread 进行编译一下,结果成功了;如下:

虽然有点警告,但不妨碍测试,还可以运行;如下:

如果你的编译没有通过,可以vim httpd.c进入文件屏蔽掉创建线程的代码,或修改httpd.c文件的一些内容让其通过编译就可以了。然后再用gcc命令行编译一下就可以通过了。下一步
5,在浏览器输入服务器IP和端口就可以连接该服务器了,该tinyhttpd服务器的端口是随机生成,将其任意生成的端口号拿去浏览器上连接就可以了;

连接服务器,如下图

之所以是百度的网页界面,是因为我把百度界面的html文件保存到了该服务器的存放html文件目录下,只有输入服务器IP:port/baidu.com就可以连接上。
如何百度等网页的html文件保存到项目目录里的步骤:
1,打开百度等任意一个网页,然后单击右键;

saves page as 到相应的目录里就可以了,如下图。

发布了50 篇原创文章 · 获赞 13 · 访问量 1821

猜你喜欢

转载自blog.csdn.net/weixin_38251305/article/details/104071160
今日推荐