![](/img/trans.png)
[英]Boost.asio: can I do async_read and async_write simultaneously from one thread?
[英]boost.asio multi-thread I/O server with async_read
基本邏輯如下
main_thread:
for(;;){
接受套接字
async_read head(包長度),綁定到head_handler
io_service.run()}
head_handler(非螺紋):
async_read body(使用從頭部讀取的長度),綁定到body_handler
body_handler(非螺紋):
將消息解析為Request對象(自定義類)。
push請求request_pool
read_thread:
for(;;){
如果request_pool不為空(否則鎖定){執行請求描述的操作}}
所以我有一個使用上述邏輯的簡單回聲服務器。 它打印出傳入的任何消息。但是,只會顯示第一條消息,其他所有消息都會正確打印出“xxx.xxx.xxx.xxx已連接”消息。但是沒有打印消息
如果您不發出任何異步。 在body_handler
運行, io_service
用完了, io_service::run()
退出了。 在對io_service::run()
任何后續調用之前,您必須調用io_service::reset()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.