且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Network Programming Using Libevent - (III)

更新时间:2022-08-22 12:00:43

這次要談的跟 Network Programming 沒有直接的關係。

在寫 Nonblocking Network Program 通常要處理 Buffering 的問題,但並不好寫,主要是因為 read() 或 recv() 不保證可以一次讀到一行的份量進來。

在 libevent 裡面提供相當不錯的 Buffer Library 可以用,完整的說明在 man event 的時候可以看到,最常用的應該就是以 evbuffer_add()evbuffer_readline() 這兩個 Function,其他的知道存在就可以了,需要的時候再去看詳細的用法。

下面直接提供 libevent-buff.c 當作範例,編譯後看執行結果,再回頭來看 source code 應該就有感覺了: