我有一个文件描述符(0 / stdin),我想在D中构造一个Socket对象。我该怎么做?似乎没有适当的构造函数。
答案 0 :(得分: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的Socket调用send()和recv()而不是write()和read(),所以我是不知道如何让它真正有用......