网络编程
shhchen
这个作者很懒,什么都没留下…
展开
-
C++多线程网络服务器项目(1)——概述
A C++ High Performance NetServer (version 0.x.0)GitHub项目地址:https://github.com/chenshuaihao/NetServer如果对您有帮助的话,欢迎点赞star哦!谢谢大家!Introduction本项目为C++编写的基于epoll的网络服务器框架,应用层实现了简单的HTTP服务器HttpServer和一个回显服...原创 2019-02-22 01:49:02 · 3966 阅读 · 2 评论 -
服务器accept队列溢出及其解决
之前对我的NetServer服务器进行测试,在经压力测试一段时间之后,数据曲线降0,之后所有的连接都连不上,我认为不是服务器挂了就是监听端口出问题了,于是看了下服务器还在运行,端口还在listened(通过命令查看:netstat -ltp),非常奇怪,这说明监听正常,能够进行三次握手的。后来抓包分析,发现三次握手正常建立,但是服务器竟然重传了第二次握手包,总共5次,根据这个现象来看,表面上是...原创 2019-03-14 15:42:38 · 3168 阅读 · 0 评论 -
网络编程中常见的基础问题
1.服务器执行了listen监听端口,但是不accept或accept失败会怎样?结论:客户端依然可以发数据,服务器收到数据后一样会回应ACK,把数据缓存起来,等下次accept成功后,再read读数据。客户端连接成功后发送数据,此时服务器断点在accept,没有从accept队列取新连接:服务器继续执行,accept新连接,可以看到服务器成功获取了客户端数据并返回610字节的数据...原创 2019-03-14 15:52:25 · 329 阅读 · 0 评论 -
网络编程 I/O 模型
一、I/O 模型 阻塞式 I/O 非阻塞式 I/O I/O 复用 信号驱动 I/O 异步 I/O 五大 I/O 模型比较 二、I/O 复用 select poll 比较 epoll 工作模式 应用场景 参考资料一、I/O 模型一个输入操作通常包括两个阶段:等待数据准备好 从内核向进程复制数据对于一个套接字上的输入操作,第一步通常...转载 2019-03-14 15:58:27 · 242 阅读 · 0 评论 -
华为云TaurusDB性能挑战赛比赛记录
华为云TaurusDB性能挑战赛KV_Store_Engine_TaurusDB_RaceA C++ KV Store Engine (华为云TaurusDB性能挑战赛,司机队,初赛第11名,复赛第26名)[外链图片转存失败(img-mrDC3K2Y-1566637674377)(https://img.shields.io/github/license/mashape/apistatus.s...原创 2019-08-24 17:09:37 · 975 阅读 · 0 评论