- 博客(4)
- 收藏
- 关注
原创 进程调试
GDB默认只调试父进程,如果在子进程中打断点,那么子进程会接收SIGTRAP信号调试前的配置detach-on-fork:该属性决定了gdb是同时调试父子进程,还是在fork了子进程之后,将子进程分离出去。On:子进程(或者是父进程,取决于gdb在初始时,要调试的进程,也就是follow-fork-mode的值)Off:同时调试父子进程。一个进程处于被调试的状态,而另一个则被gdb挂起f...
2019-03-20 08:42:10 793 3
原创 谈listen与backlog
首先我们先来谈一下listen函数。int listen(int sockfd, int backlog);一、listen函数仅由TCP服务器调用,它做两件事情:将一个主动套接字(且未连接的套接字)转化为被动套接字来指示内核“应该接受指向该套接字的连接请求”。ps:当socket函数创建一个套接字时,他是被假设为一个主动套接字的,所以才需要此处套接字的转化。 主动套接字是可以调用co...
2019-03-16 15:18:40 1136 5
原创 三次握手与四次挥手
三次握手:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;(SYN:同步序列编号)第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包,向服务器发...
2019-03-15 17:16:05 257
原创 http服务器(三) MyWebServer分析与实现
使用c++编写,基于epoll+线程池实现的小型web服务器。具体实现:启动服务器,在浏览器中发送地址记录过程:一进来先注册socket事件完成三次握手,建立线程池线程池内部开始运转,在构造函数中开始创建线程并调用类的工作函数使队列没有任务状态下的线程等待),主线程进行设置表单事件,进入轮播循环等待客户端连接,若是新连接,在表单中注册事件,若是已有连接,查看任务(当为有数据写事件入...
2019-03-03 19:00:25 6536
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人