- 博客(9)
- 收藏
- 关注
原创 webbench剖析
webbench:其为linux上一款web性能压力测试工具,它最多可以模拟3万个并发连接数来测试服务器压力,其原理为fork多个子进程,每个子进程都循环做web访问测试,子进程将访问的结果通过管道告诉父进程,父进程做最终结果统计。其主要原理如下图: 其代码实现中主要运用4个函数:getopt_long()系统命令行解析函数,build_request()函数,bench()函数,benchcor
2017-07-27 18:57:10 7830 2
原创 shell命令代换与eval命令
命令代换:在shell中用以下两种方式实现命令代换:`COMMAND` //反引号$(COMMAND) //$()命令代换即首先执行反引号或括号里的命令,将其结果立刻代换到当前命令行中或者代换赋予一个变量: 如下图,在一个shell脚本中打印日期: 以上执行过程中:第一种先执行反引号与()中date命令,执行完成,结果代换到命令行中然后用echo命令输出;第二种先执行了$()中的dat
2017-07-15 17:10:23 769
原创 TCP四次挥手后的TIME_WAIT状态
首先查看TCP建立连接与断开连接的两对端的状态图,如下: 由图可知客户端在收到服务端的请求断开连接带有的FIN位结束报文段,并发送ACK确认以后,其并没有直接关闭,进入到CLOSED状态,而是转变为TIME_WAIT状态。TIME_WAIT状态是做什么的? 在这个状态,顾名思义,即客户端连接要等待一段长为2MSL(报文段最大生存时间)的时间,才能关闭连接,在标准文档RFC 1122的MS
2017-07-14 15:45:31 1763
原创 复杂链表复制
#include <iostream>using namespace std;//复杂链表的复制struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) :label(x) ,next(NULL)
2017-07-13 18:14:20 442
原创 合并两有序链表
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2
2017-07-13 18:04:20 426
原创 TCP三次握手与四次挥手
TCP建立连接与断开连接的过程如下图: TCP连接断开其状态转移路线如下: 其中以上1,2,3段则代表的为TCP建立连接的时的三次握手,过程如下:客户端client主动发起请求连接,发送携带SYN标志同步报文段1,并包含一个ISN值为1000的序号,并指定自己的最大段尺寸mss为1460等; 其代表含义为:序号是1000,这个序号在⽹网络通讯中⽤用作临时的地址,每发一个数据字节,这个
2017-07-13 16:14:05 582
原创 poll服务器
poll是I/O复用多路转接的另一种方法,其优化了select两个缺点:poll服务器支持的文件描述符数目没有上限;poll服务器函数接口的参数与select不同,其将输入与输出参数进行了分离(用结构体实现).函数如下:#include <poll.h>int poll(struct pollfd* fds,nfds_t nfds,int timeout);参数含义:fds:结构体数组,(
2017-07-10 21:31:11 822
原创 select服务器
unix下,可将I/O分为五种模型:阻塞I/O非阻塞I/OI/O复用(多路转接:select、(e)poll)信号驱动异步I/O其中前四种I/O模型为同步I/O,最后一个为异步I/O,而一个I/O操作可分为两步:等待数据就绪;数据的搬移.而高性能I/O则体现在如何减少等待的时间,即在I/O模型中的I/O复用则是通知底层I/O就绪的高效方法。 系统提供select函数来实现多路复用
2017-07-08 14:22:57 635
原创 多进程多线程TCP服务器
在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”称为(套接字)socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,这两个socket组成的socket pair就唯一标识一个连接。 TCP/IP协议最早在BSD UNIX上实现,为TCP/IP协议设计的应用层编程接口称为socket API。此处使用socket A
2017-07-04 10:18:07 1077
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人