boost 非同步服務端

2021-10-02 04:29:44 字數 856 閱讀 2991

io_service 提供服務監聽,有四個方法 run ,run_one ,poll ,poll_one,這裡主要實現run

void on_read(const boost::system::error_code &err, std::size_t bytes);

void on_write(const boost::system::error_code &err, std::size_t bytes)

void on_connect(const boost::system::error_code &err){

sock.async_read_some(buffer(buff_read),on_read);

int main(int argc, char * ar**){

ip::tcp::endpoint ep(ip::address::from_string("127.0.0.1"),2001);

sock.async_connect(ep,on_connect);

service.run();

當service.run()被呼叫時,有乙個非同步操作在等待。

當socket連線到服務端時,on_connect被呼叫了,它會新增乙個非同步操作。

當on_connect結束時,我們會留下乙個等待的操作(read)。

當on_read被呼叫時,我們寫入乙個回應,這又新增了另外乙個等待的操作。

當on_read結束時,我們會留下乙個等待的操作(write)。

當on_write操作被呼叫時,我們從服務端讀取另外乙個訊息,這也新增了另外乙個等待的操作。

當on_write結束時,我們有乙個等待的操作(read)。

然後一直繼續迴圈下去,直到我們關閉這個應用。

boost 服務端與客戶端非同步通訊示例

1 伺服器端示例 async test2.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include pch.h include include include using namespace boost asio using boost system error code us...

HTTP服務端JSON服務端

最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...

boost 客戶端與服務端同步通訊示例

1 客戶端 client.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include pch.h include include using namespace boost asio int main sock.send buffer 7890 4 char buf 100 si...