FD WRITE是如何觸發的?

2021-09-02 16:28:49 字數 554 閱讀 8748

fd_write事件只有在以下三種情況下才會觸發

①client 通過connect(wsaconnect)首次和server建立連線時,在client端會觸發fd_write事件

②server通過accept(wsaaccept)接受client連線請求時,在server端會觸發fd_write事件

③send(wsasend)/sendto(wsasendto)傳送失敗返回wsaewouldblock,並且當緩衝區有可用空間時,則會觸發fd_write事件

①②其實是同一種情況,在第一次建立連線時,c/s端都會觸發乙個fd_write事件。

主要是③這種情況:send出去的資料其實都先存在winsock的傳送緩衝區中,然後才傳送出去,如果緩衝區滿了,那麼再呼叫send(wsasend,sendto,wsasendto)的話,就會返回乙個 wsaewouldblock的錯誤碼,接下來隨著傳送緩衝區中的資料被傳送出去,緩衝區中出現可用空間時,乙個 fd_write 事件才會被觸發,這裡比較容易混淆的是 fd_write 觸發的前提是 緩衝區要先被充滿然後隨著資料的傳送又出現可用空間,而不是緩衝區中有可用空間

CLA任務是如何觸發PIE中斷的

經常關注的是什麼觸發cla的任務,但是容易忽略,乙個cla任務執行完成後如何觸發相應的pie中斷的。f280049c參考書冊,page630 upon task completion a task specific interrupt is flagged within the pie 上面說的意思...

什麼是邊緣觸發和水平觸發

水平觸發 level triggered,也被稱為條件觸發 lt 只要滿足條件,就觸發乙個事件 只要有資料沒有被獲取,核心就不斷通知你 邊緣觸發 edge triggered et 每當狀態變化時,觸發乙個事件 舉個讀socket的例子,假定經過長時間的沉默後,現在來了100個位元組,這時無論邊緣觸...

什麼是負邊沿觸發 示波器的幾大常用觸發方式

示波器的幾種觸發方式解釋 我們先簡單回顧下什麼是示波器的觸發。由於訊號無時無刻都在變化,如果一股腦的都把他們顯示在示波器上,就會很亂,根本無法讓我們看清楚,從而也就無法觀察訊號來解決問題。考慮到訊號大多數時候都是以某種規律週期性出現的,因此我們只要找到他重複的規律,把每一次重複疊加顯示在示波器上,訊...