1
我有一個文件描述符(0 /標準輸入),我想要在D中構造一個Socket對象。我該怎麼做?這似乎沒有適當的構造函數。通過文件描述符構造Socket對象
我有一個文件描述符(0 /標準輸入),我想要在D中構造一個Socket對象。我該怎麼做?這似乎沒有適當的構造函數。通過文件描述符構造Socket對象
有一個標記爲「使用現有套接字句柄」的構造函數,它使用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()
,所以我不知道如何真正使它有用...
它對我來說工作得很好!我的應用程序得到運行,所以標準輸入流實際上是一個套接字。雖然沒有真正認爲socket_t會是一個文件描述符。 –
啊,當然,很酷。順便說一句,如果你想以另一種方式,有一個名爲Socket.handle()的方法返回一個socket_t。它會在某些情況下隱式轉換爲int,但如果不是,您可以明確地將其轉換爲int,然後在其上使用常規的unix文件函數。 –