boost-asio

    1熱度

    1回答

    我最近遇到了boost :: asio異步任務的問題。我想返回一個指向偵聽端口的對象的指針。 它適用於我使用socket.read_some方法,但此方法阻止我的主,我希望我的MyClass :: create方法返回。 所以我嘗試了一個async_read調用,但是我看到在我的read()方法中沒有啓動異步任務。我試圖找出可能導致問題的原因,但看不到這個問題的解決方案。 這是我的代碼,在這裏它沒

    0熱度

    1回答

    我寫它採用的boost :: ASIO,並通過其與的boost :: ASIO整合的libssl服務器應用程序。當有傳入連接,第一次握手成功,但連接斷開與客戶端嘗試重新連接後,握手失敗,出現錯誤: session id context uninitialized Here提出的解決方案使用SSL_OP_NO_TICKET選項,當SSL上下文被初始化時。我用下面的方法: m_sslContext.s

    13熱度

    1回答

    在下面的代碼中,我期望輸出始終爲1,因爲我期望調用poll_one()時只有一個處理程序運行。然而,一次約300次,輸出實際上是3.根據我對boost庫的理解,這看起來不正確。非確定性行爲是錯誤還是預期? #include <boost/asio.hpp> int main() { boost::asio::io_service io; boost::asio::io_se

    0熱度

    1回答

    我正在嘗試修改TCP代理的示例代碼,以便在瀏覽器中使用它。 下面是完整的代理我使用: #include <cstdlib> #include <cstddef> #include <iostream> #include <string> #include <boost/shared_ptr.hpp> #include <boost/enable_shared_from_this.hpp

    2熱度

    4回答

    我有一個問題,同時使用deadline_timer和io_service對象::交如下: #include "boost/asio.hpp" #include "boost/thread.hpp" int main() { boost::asio::io_service io_service; boost::asio::deadline_timer timer1(io_

    1熱度

    1回答

    我需要建立多達三個不同的TCP連接到不同的服務器。所有這三個連接都需要不同的協議,不同的握手和不同的心跳。學習http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp,閱讀這裏的東西,並按照克里斯Kohlhoffs建議我試圖執行它如下。 問題是,在這種體系結構中,無論我在做

    2熱度

    3回答

    我正面臨以下問題。我想用boost Asio使用第三方庫,我需要在io_service事件循環中注入一些庫使用的套接字描述符。 我使用的方法是創建一個boost :: asio :: ip :: tcp :: socket傳遞我的庫提供的本機處理程序。 問題是,庫只是傳達它對特定的套接字通知不感興趣(這意味着庫可能會關閉套接字或稍後重新使用它)。無論如何,我想要清理boost套接字並銷燬它們,但不

    5熱度

    2回答

    在閱讀的coroutine2的文檔,我發現的代碼演示瞭如何使用asio 用它來這裏引用一個不錯的snippet是從文檔代碼: void session(boost::asio::io_service& io_service){ // construct TCP-socket from io_service boost::asio::ip::tcp::socket socket(

    1熱度

    1回答

    我很高興看到有一個針對C++增強的TCP/IP套接字的跨平臺標準。到目前爲止,我已經能夠爲我遇到的所有主題找到幫助。但現在我陷入了一個奇怪的行爲。我正在開發在2013年末的iMac上使用Xcode 7.3.1。 我正在開發一個特殊用途的簡單網絡服務器。下面的代碼是削減版本,演示了這些不良行爲: #include <boost/asio.hpp> #include <boost/bind.hpp>

    0熱度

    2回答

    ASIO看起來是我的項目最好的異步跨平臺網絡庫。但是,我無法實際連接。 首先,我沒有使用Boost。我暫時在Windows上編譯它,所以我不得不手動添加定義來通知ASIO我正在使用C++ 11兼容的編譯器。 Source.cpp #define TCPCLIENT_DEBUG #include "TCPClient.hpp" #include <iostream> #define PORT