boost asio執行中報錯
使用Boost.asio進行socket程式設計,實際執行過程中,會出現如下錯誤,導致程式異常退出:
remote_endpoint: Transport endpoint is not connected
Disconnected from
其中第二行debug資訊是我在程式中新增的,當需要關閉連線時列印,但沒有像預期的那樣出現遠端IP地址,這說明是在執行該程式碼時出現異常,程式碼如下:
std::cout << "Disconnected from ";
std::cout << m_socket.remote_endpoint().address();
std::cout << std::endl;
m_socket.close();
出現異常應該是遠端剛連線上立刻斷開,導致無法獲取到remote_endpoint。
加入異常處理:
try {
std::cout << "Disconnected from ";
std::cout << m_socket.remote_endpoint().address();
std::cout << std::endl;
} catch(boost::system::system_error &ec) {
std::cerr << "Disconnected " << ec.what() << std::endl;
}
m_socket.close();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25432352/viewspace-736500/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- boost中asio網路庫多執行緒併發處理實現,以及asio在多執行緒模型中執行緒的排程情況和執行緒安全。執行緒模型
- boost.asio包裝類st_asio_wrapper開發教程(轉)APP
- boost::asio設定同步連線超時
- Jenkins中執行docker命令報錯JenkinsDocker
- Boost.Asio基礎(五) 非同步程式設計初探非同步程式設計
- boost------asio庫的使用1(Boost程式庫完全開發指南)讀書筆記筆記
- Laravel 中執行 PHP artisan migrate 報錯LaravelPHP
- 在KYLIN中執行查詢報錯
- 執行用例報錯
- ./mongod命令執行報錯Go
- linuxmysql執行報錯LinuxMySql
- 執行srvctl命令報錯
- C++使用Boost多執行緒C++執行緒
- Boost多執行緒程式設計執行緒程式設計
- 執行web專案報錯Web
- 執行opatch lsinventory報錯73
- sh指令碼執行報錯指令碼
- Boost.Asio和ACE之間關於Socket程式設計的比較程式設計
- C/C++利用Boost::Asio網路庫建立自己的Socket伺服器C++伺服器
- mac中python manage.py migrate執行報錯MacPython
- idea上執行scala報錯Idea
- mysql執行報錯mysql.sockMySql
- MacOS 裡執行 sed 命令報錯Mac
- PHP編譯,執行make報錯PHP編譯
- Linux sybase執行isql報錯LinuxSQL
- 使用Boost庫報error C4996錯誤Error996
- selenium的那些事--執行報錯
- 執行指令碼diagcollection.pl報錯指令碼GC
- mysql執行命令報segmentation fault 錯誤MySqlSegmentation
- [vue]執行vue --version報錯:-4054 ENOSYSVue
- 跨平臺c++/boost/asio 簡單的HTTP POST請求 客戶端模型C++HTTP客戶端模型
- boost_python庫pyd執行庫不可少!Python
- crontab異常:shell下可以執行命令,執行crontab卻報錯
- svelte 執行報錯 getaddrinfo ENOTFOUND localhostlocalhost
- laradock 執行報錯 Service 'workspace' failed to build:AIUI
- sqlplus執行sql檔案報錯SQL
- 執行npm run dev 後報錯 Mix: not foundNPMdev
- AS執行main()方法報錯:SourceSet with name ‘main‘ not foundAI