2015-06-22 29 views

回答

2

你或許應該手動創建套接字,並使用posix::stream_descriptor代替:

更新

如文檔反映,有沒有自定義的析構函數(basic_)stream_descriptor和 - 因此 - 分配fd不會被銷燬關閉。 (我簡要地檢查了基類的完整性)。

+0

@ garima721來自編輯的評論:澄清了我的回答 – sehe

+0

'class Comm { private: boost :: shared_ptr socket; 的boost ::支持ASIO :: io_service對象io_service對象; public: Comm(int fd1) this-> socket.reset(new boost :: asio :: posix :: stream_descriptor(io_service));這 - >插座 - >分配頻率(fd1); };使用'' INT FD1 =接受(socketHandle,(SOCKADDR *)&薩德爾&addr_size)創建 而且,FD;' 現在,如果 「通訊」 類被破壞,將FD不會關閉? – garima721

+0

能不能請你舉一個例子,我無法使用boost :: ASIO :: POSIX :: stream_descriptor – garima721