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...