Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 用文件描述符构造套接字对象_Sockets_D_File Descriptor_Dmd_Unix Socket - Fatal编程技术网

Sockets 用文件描述符构造套接字对象

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(),所以我不确定如何实际使其有用…它对我来说很好!我的应用程序运行时,标准输入流实际上是

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

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


这将使您得到构造,尽管使用它会导致“非套接字上的套接字操作”错误,因为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);