對IOCP模型中獲取客戶端狀態的思考

2021-07-26 09:46:13 字數 422 閱讀 1823

iocp模型是windows作業系統下處理高併發的網路通訊採取的一種策略,boost.asio在windows作業系統也是採用iocp模型。該模型利用getqueuedcompletionstatus獲取緩衝區裡的資料,如果沒有,那麼這個socket會等,如何定時獲取客戶端的socket的狀態,需要乙個定時器或者乙個執行緒來處理。

以下對per_handle_data,*pper_handle_data;

以下是邏輯判斷部分:

for(int id = 0;id < g_vecclient.size();id++)

else

else

}else

}}else}}

總結:通過乙個執行緒或者定時器不停的獲取客戶端的狀態,主要的目的是判斷客戶端是否還在連線伺服器。

參考:windows網路與通訊程式設計

獲取客戶端MAC

有時候我們需要獲取客戶端的一些資訊來做處理,獲取mac,如下 dllimport iphlpapi.dll private static extern int sendarp int32 dest,int32 host,ref int64 mac,ref int32 length dllimport...

獲取客戶端資訊

request.browser.majorversion.tostring 獲取客戶端瀏覽器的 主 版本號request.browser.version.tostring 獲取客戶端瀏覽器的完整版本號 request.browser.platform.tostring 獲取客戶端使用平台的名字 re...

獲取客戶端ip

1.統計訪問者ip位址 2.設定黑名單,黑名單的使用者不可以訪問聊天室。內容提要 這種情況下同樣透露了客戶端是使用了 伺服器 但編造了乙個虛假的隨機ip 220.4.251.159 代替客戶端的真實 ip來欺騙它 獲取客戶端 ip其實不是個簡單的活兒 因為存在 ip欺騙 和 問題 所以獲取客戶端的 ...