
网络
不闻窗外事
学无止境
展开
-
水平触发和边缘触发
水平触发比较常见,例如select、poll等都是水平触发的,而epoll不仅支持水平触发,也支持边缘触发。实际工作学习中我从未见过使用边缘触发开发的网络程序,但是之前在《Linux多线程服务端编程》这本书中,陈硕大神有一段话:我认为理想的做法是对readable事件采用level trigger,对writable事件采用edge trigger,但是目前Linux不支持这种设定。边缘触发的读还比较好理解,但是写到底是如何工作的,感觉不是太好理解,所以今天写了个测试程序想验证下之前的理解对不对,这篇博客也原创 2020-12-27 12:43:19 · 6353 阅读 · 0 评论 -
TCP状态
摘抄自《Linux/UNIX系统编程手册》维护一个TCP连接需要同步协调这个连接的两端。为了减小这项任务的复杂度,TCP节点以状态机的方式来建模。这意味着TCP节点可以处于一组固定状态中的其中一种,并且根据对事件的响应来从一种状态迁移到另一种状态。比如可根据TCP上层的应用程序所执行的系统调用,又或者是从对端TCP节点接收到了TCP报文。TCP的状态有如下几种:LISTEN:TCP正等待从对端TCP节点发来的连接请求 SYN_SENT:TCP发送了一个SYN报文,代表应用程序执行了一个主动打开的操原创 2020-08-20 14:59:59 · 171 阅读 · 1 评论