boost-asio

    1熱度

    2回答

    我有一個類'TcpCom',其中我想將boost.asio tcp套接字作爲類成員,以便所有類函數不必採取在一個TCP套接字中作爲一個參數(打破了'COM'基類的通用設計,我試圖做)。然而,我對如何在類的成員初始化列表中正確初始化套接字感到困惑。 ,通常要使用創建: boost::asio::io_service io_service; boost::asio::ip::tcp::socket

    1熱度

    1回答

    我正在使用boost來實現TCP客戶端和服務器。在客戶端,我必須一個接一個地發送多個文件。我使用單獨的機制來通知服務器文件傳輸。如果服務器準備好接收文件,它將響應客戶端並啓動傳輸。 我定義異步處理程序寫入數據,然後讓OS通過調用io_service.run()照顧它。據我所知,io_service.run()阻塞,直到沒有更多的處理程序被分派,但這並不意味着數據實際上在遠程端收到了正確的?問題是在

    0熱度

    1回答

    我想寫一個簡單的客戶端發佈一個UDP消息到服務器。我的緩衝區不是作爲udp發送的。當我嘗試將消息發送到netcat時,它不會出現。 #include <iostream> #include <boost/array.hpp> #include <boost/asio.hpp> #include <boost/lexical_cast.hpp> #include <boost/thread.

    2熱度

    1回答

    捕獲此和shared_from_this()在升壓async-tcp-echo-server例子有一個服務器類上一個新的連接創建會話: acceptor.async_accept(socket, [this](boost::system::error_code ec) { if (!ec) std::make_shared<session>(std::move(socket)

    1熱度

    1回答

    我有下面的代碼,這是從我真正的代碼簡化,我試圖做一個async_read連接到子進程的async_pipe。在孩子的過程中,我打電話給「ls」。只是一個測試,我希望我的異步閱讀獲得結果。它返回以下內容 $ ./a.out system:0 0 爲什麼會發生這種情況我找不出來?理想情況下,我想替換「ls」。有一個長時間的運行過程,我可以在線閱讀async_read。 #include <bo

    2熱度

    1回答

    我有以下最小的示例代碼。我想要做的是: 在一個單獨的線程中,啓動一個boost::asio::deadline_timer,以便每調用一個函數loop,就會完成一些操作,定時器會自行重新設置,直到無窮大。 #include <iostream> #include <boost/asio.hpp> #include <boost/thread/thread.hpp> void wait(in

    1熱度

    1回答

    我有一個關於使用boost asio的async_read_until的常見問題。該文檔說,當處理程序被調用時,緩衝區內可能有更多的數據。有沒有什麼辦法可以解決這個問題,並在序列條件匹配後立即停止緩衝區從套接字中消耗字節?

    2熱度

    1回答

    我想創建一個異步函數,它將最後一個參數boost :: asio :: yield_context作爲參數。例如: - int async_meaning_of_life(asio::yield_context yield); 我也想與短耳如何返回錯誤代碼是一致的。也就是說,如果用戶確實: int result = async_meaning_of_life(yield); 和函數調用失敗

    2熱度

    1回答

    開始我的程序時,我需要檢索運行它的機器的本地(LAN)地址。我這樣做的方式如下: try { asio::io_service ioService; asio::udp::resolver resolver(ioService); asio::udp::query lanQuery(asio::udp::v4(), asio::ip::host_name(), "")

    2熱度

    1回答

    我很好奇,如果在Boost ASIO中使用異步讀取功能相比於使用單獨讀取同步的線程有任何性能優勢。用例將不得不始終監聽來自遠程主機的數據。 在異步情況下,我相信ioservice.run()會阻塞線程,直到有數據被讀取。在同步的情況下,boost :: asio:read調用會阻塞,直到有數據被讀取。使用異步讀取有什麼好處嗎?看起來如果應用程序在等待數據時需要在後臺執行任何操作,那麼在使用asyn