1

我有一个文件描述符(0/stdin),我想在 D 中构造一个 Socket 对象。我该怎么做?似乎没有合适的构造函数。

4

1 回答 1

3

有一个标记为“使用现有套接字句柄”的构造函数,它接受一个 socket_t。您可以将 int 强制转换为 socket_t(socket_t 是基于 Unix 系统上的 int 的枚举)。

    // it requires an address family but i don't think it matters much
    auto socket = new Socket(cast(socket_t) 0, AddressFamily.INET);

这将使您构建,尽管随后使用它会导致“非套接字上的套接字操作”错误,因为 D 的套接字调用 send() 和 recv() 而不是 write() 和 read(),所以我不确定如何真正使它有用...

于 2013-10-26T16:15:39.233 回答