2013-10-26 106 views

回答

3

有一個標記爲「使用現有套接字句柄」的構造函數,它使用socket_t。你可以將一個int轉換爲socket_t(socket_t是基於Unix系統上的int的enum)。

// it requires an address family but i don't think it matters much 
    auto socket = new Socket(cast(socket_t) 0, AddressFamily.INET); 
,將讓你建造,但然後使用它會導致錯誤的「非插槽Socket操作」,因爲D的Socket調用發送()和recv(),而在於寫()和read()

,所以我不知道如何真正使它有用...

+0

它對我來說工作得很好!我的應用程序得到運行,所以標準輸入流實際上是一個套接字。雖然沒有真正認爲socket_t會是一個文件描述符。 –

+1

啊,當然,很酷。順便說一句,如果你想以另一種方式,有一個名爲Socket.handle()的方法返回一個socket_t。它會在某些情況下隱式轉換爲int,但如果不是,您可以明確地將其轉換爲int,然後在其上使用常規的unix文件函數。 –