boost-asio

    9熱度

    1回答

    我想提供由全局線程驅動的全局io_service。很簡單,我只需要撥打電話io_service::run()即可。但是,如果沒有工作要做,則不起作用run(run_one,poll,poll_one)將返回。但是,如果線程反覆調用run(),則在沒有任何操作時它將忙於循環。 我正在尋找一種方法來讓線程阻塞,而沒有任何工作要在io_service中完成。我可以將一個全局事件添加到混合中,以阻塞線程。

    14熱度

    1回答

    我剛剛通過asio chat server example。我的問題是關於他們對io_service.run()函數的使用。對於io_service.run()函數的文檔說: 的run()函數阻塞,直到所有的工作已經完成,並且沒有 更多的處理程序被分派,或直至io_service對象已經 停止。多個線程可能會調用run()函數來設置一個線程池,io_service可以從中執行處理程序。在池中等待的

    1熱度

    1回答

    我使用C++進行編碼,並且試圖異步加載圖像文件。經過一番研究,我發現了一些關於使用boost :: asio和boost :: iostreams來做到這一點的提及。然而,boost :: asio的文檔和示例大多與套接字相關,所以對我沒有多大幫助。 這是我需要的。 負荷異步和負載完成後一個文件,執行的回調函數(在我的情況下,回調函數使用V8引擎執行JavaScript函數對象的JavaScrip

    22熱度

    5回答

    有時boost :: asio似乎在我希望之前斷開連接,即在服務器正確處理斷開連接之前。我不知道這是如何實現的,因爲客戶端似乎認爲它完全發送了消息,但是當服務器發出錯誤時它甚至沒有讀取消息頭......在測試期間,這種情況只發生在5次,服務器收到客戶端關閉消息,並乾淨地斷開客戶端。 錯誤: 客戶端斷開 「一個現有的連接被強行關閉遠程主機」: void disconnect() { bo

    0熱度

    2回答

    我無法implmenting的功能這裏記錄的第三個參數: http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/reference/async_read_until/overload4.html 我想什麼,能夠做的就是利用回調在async_read_until的第三個參數檢測,當一個完整的塊已經到達。我的數據包有以下格式。 1字節ID(該

    6熱度

    2回答

    是否可以從Boost.ASIO的套接字類中分離出本地套接字?如果是這樣,該怎麼辦?我似乎無法在文檔中找到任何明顯的東西。 作爲我想要完成的工作的一個快速概覽:我有一個使用Boost.ASIO建立連接並進行一些協商的類,然後在成功時返回本機Windows SOCKET,或在失敗時返回0。 除非我錯了,否則當我的boost :: asio :: basic_socket被銷燬時,原生套接字將被關閉並解

    3熱度

    1回答

    看來,自1.40.0上調以來,async_read_some()調用的方式發生了變化。你可以傳入一個null_buffer,當有數據需要讀取時,你會得到一個回調,但沒有框架讀取數據到任何緩衝區(因爲沒有一個!)。這基本上允許你編寫代碼,它的行爲就像一個select()的調用,在那裏你會被告知你的套接字什麼時候有一些數據。 在新代碼的行爲已更改以下列方式工作: 如果所有緩衝區中的順序MB總大小爲0,

    3熱度

    1回答

    boost :: asio軟件包包含使用IO完成端口在Windows中執行異步文件io的類。據我瞭解,asio包中包含的其他平臺不支持異步文件io。 我想知道爲了擴展異步文件io支持至少需要Mac OS X,但在某種程度上Linux還需要做些什麼。我最感興趣的是需要在asio方面做些什麼,但由於我不是那麼熟悉Mac OS X編程,我不介意在哪裏可以找到更多關於如何執行異步文件io的信息的指針Mac

    5熱度

    1回答

    我對cMake比較陌生,而且我正在嘗試在我的項目中使用boost asio庫。 我能得到的CMake尋找其他Boost庫如smart_ptr和lexical_cast的,但我得到一個鏈接錯誤,當我嘗試包括boost/asio.hpp: LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-1_40.lib'.

    6熱度

    1回答

    我的boost::asio::deadline_timer 給出總會超時的例子一個更好的例子是後並調用close方法。我試着在定時器上調用cancel(),但這會導致傳入async_wait的函數立即被調用。 在異步TCP客戶端使用定時器的正確方式是什麼?