Linux / TCPIP / 判断 client 已经关闭的方法
生活随笔
收集整理的這篇文章主要介紹了
Linux / TCPIP / 判断 client 已经关闭的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、被動判斷
1、epoll 模型
(1)client 正常關閉。
epoll 會收到 EPOLLIN 事件,再通過 recv 返回值是否為 0 來判斷 client 是否已經關閉。
(2)client 異常關閉。
(后續補充)
2、select 模型
(1)client 正常關閉。
(后續補充)
(2)client 異常關閉。
(后續補充)
二、主動判斷
通過心跳包來判斷。主要過程是 server 會有一個專門的線程來檢查各個連接的心跳包的發送頻率,若連續 3 個周期 client 沒有向 server 發送數據固定的包(心跳包),則可以認為 client 已經斷開了連接,server 主動斷開連接即可。
?
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的Linux / TCPIP / 判断 client 已经关闭的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令 / GDB / 多进程调试 + 多
- 下一篇: Linux / Server 端收到 S