網路程式設計之乙個bug找一天系列

2021-10-04 17:16:57 字數 469 閱讀 6746

你真的清楚et模式和lt模式的區別碼?關鍵你真的會用碼??

lt模式:效率低於et模式,但lt模式對**要求低,不容易出現問題

et模式:效率非常高,非常適合大併發、大流量下。但需要細緻處理每乙個請求,否則容易發生事件丟失。

實際應用的差別:

lt模式,如果accept呼叫有返回就可以馬上建立這個連線了,然後epoll_wait等待下次事件的觸發。

et模式:如果accept呼叫有返回,除了建立當前的連線外,不能馬上epoll_wait還要繼續迴圈accept(),直到返回-1且errno=eagain

問題:好吧。我就是掉到了這個坑里了,我在et模式下,accept之後就立即epoll_wait導致不能接收所有事件的觸發,出現事件丟失的情況。

解決辦法:當然是改回lt模式

打算:之後好好調教一下et

python soket程式設計之乙個ssh程式

1 在寫這個程式之前我們先來了解一下socket的工作過程 如下圖所示 一 服務端繫結乙個埠號 並處於監聽狀態。用accept 接收發來的資料請求 二 客戶端通過位址和埠號連線服務端,並傳送資料請求。三 服務端收到後,處理請求,併發請求發給客戶端。如何客戶端還在連線請求,那麼就迴圈操作。四 客戶端處...

unix網路程式設計之一TCP UDP

網路通訊中最常用的就是tcp udp。2種協議個有一些特點如下 udp是一種簡單的傳輸協議。應用程式寫資料到udp套介面。然後由它封裝成ipv4或ipv6的資料報,再傳送到目的位址。它不提供可靠性。它與伺服器不存在長期的連線關係。tcp是一種面向連線的協議。提供 可靠性 先連線,再傳輸資料。傳送資料...

Linux 網路程式設計之乙個簡單的客戶端伺服器程式

1 服務端 include includes.h include include include define server port 8888 監聽的埠號 define max buffer len 256 最大的buffer長度 void process conn server int sock...