北京市网站备案查询,北京中国建设银行招聘信息网站,网页设计的工作,什么叫商业网站#xff08;1#xff09;经过之前的学习。俺认为结论是这样的#xff0c;因为三次握手到四次挥手#xff0c;到 RST 报文#xff0c;都是 tcp 连接上收到了报文#xff0c;这都属于读事件。所以#xff1a; EPOLLIN : 包含了读事件#xff0c; FIN 报文的正常四次挥手、…1经过之前的学习。俺认为结论是这样的因为三次握手到四次挥手到 RST 报文都是 tcp 连接上收到了报文这都属于读事件。所以 EPOLLIN : 包含了读事件 FIN 报文的正常四次挥手、还有 RST 报文的连接突然中断的情形已经连接上的 tcp 连接即使被突然关闭 tcp 协议也会让被关闭的套接字再发送最后一条报文就是 RST 报文。这个结论的支撑来自于 wireshark 的抓包观测 EPOLLRDHUP 对应 FIN 报文的正常的四次挥手的 tcp 连接关闭。这时候在现代的 linux 内核里也同时保留了 EPOLLIN 事件。
EPOLLHUP 若客户端没有调用 close套接字就关闭了 tcp 协议会发送一条 RST 报文给服务器。 服务器上的 epoll 对象会感知到这个事件且事件类型是 EPOLLHUP 与 EPOLLIN 。一会会编写小例子来验证。弄清这些知识很重要可以让咱们安心的写出稳定的通信代码。
以上关于 RST 报文的 tcp 协议方面的支撑如下 进程退出要关闭自己打开的所有文件可能触发了 ABORT 请求该请求启动了 tcp_drop 函数 tcp_drop函数会触发 RST 报文的发送 tcp_close函数会清除本主机上被关闭套接字具有的所有内存也就没有此套接字了。 以及 但是如下图 close 函数触发的四次挥手 FIN 报文对应 DETACH 请求走的是不一样的代码逻辑 以及 2 接着先整理一下某心一言里的教导与答案 以及 以及 以及 所有的事件都离不开系统的读函数 read再补充一下 read函数的返回值 3 上面的一言的解答已经很清楚了。谢谢一言。下篇文章里编写小例子测试一下上 ubantu 系统。
谢谢