2017-04-11 33 views
0

我正在構建一個基於boost :: asio庫中的聊天示例的嵌入式應用程序。服務器從客戶端接收消息,並在使用純虛函數的接口上發送消息。然後該響應從該接口恢復併發送回客戶端。由於它在不同的位置崩潰,我無法正確地將它轉換爲多線程。 http://www.boost.org/doc/libs/1_63_0/doc/html/boost_asio/examples.htmlBoost asio程序在多線程上崩潰

我想知道每個類中的所有共享對象是否應聲明爲靜態,受互斥鎖保護,我可否使用虛函數?如何修改此服務器,以便它在網絡上運行一個接收msg的線程,一個用於在接口上發送msg,另一個用於恢復回發給客戶端的響應,因爲它們都是異步的。代碼量很大,所以我不知道如何發佈所有這些。 任何想法表示讚賞。謝謝

+1

分享您正在運行的確切代碼 – Arunmu

回答

0

感謝投球英寸經過一些更多的不同策略試驗後,我能夠得到它的工作。我現在有兩個io服務實例,一個管理網絡IO,另一個管理其他設備接口。共享指針出現問題,該指針變爲空。所以,我必須使用「shared_from_this」來代替「this」,因爲我的代碼在類中。 這個例子幫了我:Long-running/blocking operations in boost asio handlers