2
想,我在指定的boost :: ASIO :: IP :: TCP ::插座類型的任何原料FD,所以我能再次從這個檢索原始FD重新發送數據?甚至毀滅的boost ::支持ASIO :: IP :: TCP ::插座後如何使用原始文件描述符?
我的意思是不升壓的破壞:: ASIO :: IP :: TCP ::插座確保FD也將被關閉,如果是,那麼我怎麼能阻止它?
想,我在指定的boost :: ASIO :: IP :: TCP ::插座類型的任何原料FD,所以我能再次從這個檢索原始FD重新發送數據?甚至毀滅的boost ::支持ASIO :: IP :: TCP ::插座後如何使用原始文件描述符?
我的意思是不升壓的破壞:: ASIO :: IP :: TCP ::插座確保FD也將被關閉,如果是,那麼我怎麼能阻止它?
你或許應該手動創建套接字,並使用posix::stream_descriptor
代替:
更新:
如文檔反映,有沒有自定義的析構函數(basic_)stream_descriptor
和 - 因此 - 分配fd
不會被銷燬關閉。 (我簡要地檢查了基類的完整性)。
@ garima721來自編輯的評論:澄清了我的回答 – sehe
'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
能不能請你舉一個例子,我無法使用boost :: ASIO :: POSIX :: stream_descriptor – garima721