本来是想实现ssl连接的,但是弄了好久都不成功,就索性不做了,等以后有能力再做了。所以这一小节就是本次的最后一节了。就简单的说几个注意点。

  1.加个配置文件

    使用单例模式,使用一个类,该类保存一些信息,例如一个配置类的一个属性为PAGE404的字符串,该字符串保存一个文件地址,然后我们的Page_404函数就可以用access判断PAGE404这个字符串对应的文件是否存在,如果存在那么如果是404页面那么就cat这个文件,而不是默认的404函数里面的页面。还有个端口什么的都是通过一个类似宏定义一样,代替程序中的魔数。还有各种配置的就不多说了。

  2.访问控制

    这个就更简单了,通过一个配置文件读取运行的IP,和拒绝的IP,然后在WebServer::ServerAccept()函数中可以判断,在这个函数中可以获取到连接进来的IP地址,然后可以通过这个IP地址进行约束。具体也不是很难。

  3.siege性能测试

    这个就是本小节的重点了。(这里要说明的是我这个服务器性能差的很,求不吐槽。)

    下载地址: http://www.joedog.org/2013/07/siege-3-0-3-url-encoding/   

  1 siege -c100 -r5 url #对url地址进行100个并发用户5次的测试
  2 ##############我的WebServer############
  3 Transactions:                    500 hits
  4 Availability:                 100.00 %
  5 Elapsed time:                   8.87 secs
  6 Data transferred:               0.60 MB
  7 Response time:                  0.75 secs
  8 Transaction rate:              56.37 trans/sec
  9 Throughput:                     0.07 MB/sec
 10 Concurrency:                   42.26
 11 Successful transactions:         500
 12 Failed transactions:               0
 13 Longest transaction:            3.95
 14 Shortest transaction:           0.01
 15 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 16 Transactions:                    500 hits
 17 Availability:                 100.00 %
 18 Elapsed time:                   8.64 secs
 19 Data transferred:               0.60 MB
 20 Response time:                  0.66 secs
 21 Transaction rate:              57.87 trans/sec
 22 Throughput:                     0.07 MB/sec
 23 Concurrency:                   37.96
 24 Successful transactions:         500
 25 Failed transactions:               0
 26 Longest transaction:            2.87
 27 Shortest transaction:           0.01
 28 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 29 Transactions:                    500 hits
 30 Availability:                 100.00 %
 31 Elapsed time:                   8.58 secs
 32 Data transferred:               0.60 MB
 33 Response time:                  0.62 secs
 34 Transaction rate:              58.28 trans/sec
 35 Throughput:                     0.07 MB/sec
 36 Concurrency:                   36.41
 37 Successful transactions:         500
 38 Failed transactions:               0
 39 Longest transaction:            3.01
 40 Shortest transaction:           0.01
 41
 42 ##############本地Nginx################
 43 Transactions:                    500 hits
 44 Availability:                 100.00 %
 45 Elapsed time:                   5.07 secs
 46 Data transferred:               0.29 MB
 47 Response time:                  0.02 secs
 48 Transaction rate:              98.62 trans/sec
 49 Throughput:                     0.06 MB/sec
 50 Concurrency:                    2.40
 51 Successful transactions:         500
 52 Failed transactions:               0
 53 Longest transaction:            0.08
 54 Shortest transaction:           0.00
 55 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 56 Transactions:                    500 hits
 57 Availability:                 100.00 %
 58 Elapsed time:                   5.19 secs
 59 Data transferred:               0.29 MB
 60 Response time:                  0.02 secs
 61 Transaction rate:              96.34 trans/sec
 62 Throughput:                     0.06 MB/sec
 63 Concurrency:                    2.40
 64 Successful transactions:         500
 65 Failed transactions:               0
 66 Longest transaction:            0.08
 67 Shortest transaction:           0.00
 68 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 69 Transactions:                    500 hits
 70 Availability:                 100.00 %
 71 Elapsed time:                   5.15 secs
 72 Data transferred:               0.29 MB
 73 Response time:                  0.02 secs
 74 Transaction rate:              97.09 trans/sec
 75 Throughput:                     0.06 MB/sec
 76 Concurrency:                    1.83
 77 Successful transactions:         500
 78 Failed transactions:               0
 79 Longest transaction:            0.05
 80 Shortest transaction:           0.00
 81 ##############本地httpd################
 82 Transactions:                    500 hits
 83 Availability:                 100.00 %
 84 Elapsed time:                   5.18 secs
 85 Data transferred:               0.11 MB
 86 Response time:                  0.02 secs
 87 Transaction rate:              96.53 trans/sec
 88 Throughput:                     0.02 MB/sec
 89 Concurrency:                    2.18
 90 Successful transactions:         500
 91 Failed transactions:               0
 92 Longest transaction:            0.18
 93 Shortest transaction:           0.00
 94 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 95 Transactions:                    500 hits
 96 Availability:                 100.00 %
 97 Elapsed time:                   5.17 secs
 98 Data transferred:               0.11 MB
 99 Response time:                  0.02 secs
100 Transaction rate:              96.71 trans/sec
101 Throughput:                     0.02 MB/sec
102 Concurrency:                    1.55
103 Successful transactions:         500
104 Failed transactions:               0
105 Longest transaction:            0.17
106 Shortest transaction:           0.00
107 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
108 Transactions:                    500 hits
109 Availability:                 100.00 %
110 Elapsed time:                   5.14 secs
111 Data transferred:               0.11 MB
112 Response time:                  0.02 secs
113 Transaction rate:              97.28 trans/sec
114 Throughput:                     0.02 MB/sec
115 Concurrency:                    1.77
116 Successful transactions:         500
117 Failed transactions:               0
118 Longest transaction:            0.12
119 Shortest transaction:           0.00

   一看才知道,我的服务器是有多渣呀,好不开心。

  Socket网络编程--简单Web服务器各章节传送门

  Socket网络编程--简单Web服务器(1)  http://www.cnblogs.com/wunaozai/p/3926033.html
  Socket网络编程--简单Web服务器(2)  http://www.cnblogs.com/wunaozai/p/3936295.html
  Socket网络编程--简单Web服务器(3)  http://www.cnblogs.com/wunaozai/p/3943952.html
  Socket网络编程--简单Web服务器(4)  http://www.cnblogs.com/wunaozai/p/3945218.html
  Socket网络编程--简单Web服务器(5)  http://www.cnblogs.com/wunaozai/p/3946486.html
  Socket网络编程--简单Web服务器(6)  http://www.cnblogs.com/wunaozai/p/3949324.html

  Web服务器源码下载: http://files.cnblogs.com/wunaozai/WebServer.zip

  参考资料: http://www.zihou.me/html/2011/01/27/2737.html

  本文地址: http://www.cnblogs.com/wunaozai/p/3949324.html

转载于:https://www.cnblogs.com/wunaozai/p/3949324.html

Socket网络编程--简单Web服务器(6)相关推荐

  1. Socket网络编程--简单Web服务器(2)

    上一小节通过阅读开源的Web服务器--tinyhttpd.大概知道了一次交互的请求信息和应答信息的具体过程.接下来我就自己简单的实现一个Web服务器. 下面这个程序只是实现一个简单的框架出来.这次先实 ...

  2. Socket网络编程--简单Web服务器(3)

    上一小节已经实现了浏览器发送请求,然后服务器给出应答信息,然后浏览器显示出服务器发送过来的网页.一切看起来都是那么的美好.这一小节就准备实现可以根据地址栏url的不同来返回指定的网页.目前还不考虑带参 ...

  3. socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程

    一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...

  4. C# Socket网络编程入门(服务器与客户端通信,客户端与客户端通信)

    WebSocket全双工通讯链接,用于前台和后台自由发送信息 一.效果展示: 效果描述: 1.服务器充当管理员,给所有人发送信息,除服务器以外其他人都能接受到. 2.其他用户发送信息除自己以外其他用户 ...

  5. Linux socket网络编程实现FTP服务器

      服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接.在这时如果有个客户端初始化一个Socket,然后连接服务器(conn ...

  6. 网络编程多人聊天c语言,socket网络编程--简单的多人聊天

    //本代码参考于马士兵的代码,做了一些简单的改动,例如获取主机名称好让用户知道那句话是谁发的,Swing方面基本上全改了,关键地方加了我所理解的注释,关键线程方面的代码基本上用马老师的 //服务器端代 ...

  7. Linux C++/Java/Web/OC Socket网络编程

    一,Linux C++ Socket网络编程 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制 ...

  8. 视频教程-C++socket网络编程--http服务器(支持php)实战教学视频-C/C++

    C++socket网络编程--http服务器(支持php)实战教学视频 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真, ...

  9. 【Linux】socket网络编程之服务器与客户端的数据交互

    [Linux]socket网络编程之服务器与客户端的数据交互 前言参考 argc !=2是什么意思 inet pton函数 对stdin,stdout 和STDOUT_FILENO,STDIN_FIL ...

最新文章

  1. ArrayList的内存泄露
  2. 软件架构设计 温昱著 - 读书笔记
  3. 软件项目开发计划书【申明:来源于网络】
  4. 扫地机器人什么牌子好?2021最新扫地机器人排行榜
  5. 公开课精华 | 移动机器人视觉三维感知的现在与将来
  6. Exception 'ReflectionException' with message 'Class require does not exist'
  7. 字符串转化为整型,为0,而不是1
  8. 结合thinkphp5与hplus(h+)写的一个带权限的后台管理系统
  9. C-Free5.0破解码
  10. 数据分析师市场需求研究
  11. Python爬取全国或特定城市百度地图慧眼、百度迁徙迁入迁出大数据
  12. 第六章、面向对象(oop)
  13. 服务器收到syn包不回消息,TCP:SYN请求接收SYN响应代替SYN-ACK
  14. 大数据分析技术种类与应用
  15. Cadence orcad 批量设置原理图标题栏
  16. 数字逻辑电路设计(实验测试题)
  17. 别头疼了,你要的算法和数据结构的学习路线来了!
  18. [php fqm说明]以及nginx和apache的一些说明
  19. java开发中常用的算法_总结一下项目开发过程中常用的到的一些加密算法。
  20. opengauss、GaussDB数据库安装-详细教程

热门文章

  1. 详解3D点云分割网络 Cylindrical and Asymmetrical 3D Convolution Networksfor LiDAR Segmentation
  2. php 大型系统开法流程图,有一个php项目源码,如何搞清楚执行过程?画出其流程图...
  3. java年利润编程题_[编程入门]利润计算-题解(Java代码)
  4. uniapp ajax数据库查询,uniapp小程序登录、数据请求方式
  5. java完全解耦_java-完全解耦
  6. java怎么使用泛型_java泛型 7 泛型的基本介绍和使用
  7. Java 代码性能优化
  8. Struts2.3接收post方式提交的表单参数的方式
  9. 先序中序数组推后序数组
  10. (十七)深入浅出TCPIP之HTTP和HTTPS