Sockets 用文件描述符构造套接字对象
我有一个文件描述符(0/stdin),我想在D中构造一个Socket对象。我该如何做?似乎没有合适的构造函数用于此 有一个标记为“使用现有套接字句柄”的构造函数,它接受一个套接字句柄。可以将int强制转换为socket(socket是Unix系统上基于int的枚举)Sockets 用文件描述符构造套接字对象,sockets,d,file-descriptor,dmd,unix-socket,Sockets,D,File Descriptor,Dmd,Unix Socket,我有一个文件描述符(0/stdin),我想在D中构造一个Socket对象。我该如何做?似乎没有合适的构造函数用于此 有一个标记为“使用现有套接字句柄”的构造函数,它接受一个套接字句柄。可以将int强制转换为socket(socket是Unix系统上基于int的枚举) 这将使您得到构造,尽管使用它会导致“非套接字上的套接字操作”错误,因为D的套接字调用send()和recv(),而不是write()和read(),所以我不确定如何实际使其有用…它对我来说很好!我的应用程序运行时,标准输入流实际上是
这将使您得到构造,尽管使用它会导致“非套接字上的套接字操作”错误,因为D的套接字调用send()和recv(),而不是write()和read(),所以我不确定如何实际使其有用…它对我来说很好!我的应用程序运行时,标准输入流实际上是一个套接字。但我真的没想到socket会是一个文件描述符。啊,当然,很酷。顺便说一句,如果你想换一种方式,有一个名为Socket.handle()的方法返回一个Socket\u t。在某些情况下,它将隐式转换为int,但如果不是,您也可以显式转换它,然后对其使用常规unix文件函数。
// it requires an address family but i don't think it matters much
auto socket = new Socket(cast(socket_t) 0, AddressFamily.INET);