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 如何设置std::net::UdpSocket的超时?_Sockets_Rust - Fatal编程技术网

Sockets 如何设置std::net::UdpSocket的超时?

Sockets 如何设置std::net::UdpSocket的超时?,sockets,rust,Sockets,Rust,已替换为,并且fn set\u timeout(&mut self,timeout\u ms:Option)没有等效项 有什么想法可以实现吗?现在无法在std::net中设置任何网络操作的超时时间。这上面有一个标记,所以对于Rust 1.0,它肯定会被修复。请继续收看 同时,您可以使用每个套接字具有的实现,并手动调用文件描述符上的低级套接字函数。返回表示操作系统中底层套接字的原始文件描述符。您可以在此文件描述符上调用各种低级套接字函数,如setsockopt。这些功能可通过libccrater获

已替换为,并且
fn set\u timeout(&mut self,timeout\u ms:Option)
没有等效项


有什么想法可以实现吗?

现在无法在
std::net
中设置任何网络操作的超时时间。这上面有一个标记,所以对于Rust 1.0,它肯定会被修复。请继续收看

同时,您可以使用每个套接字具有的实现,并手动调用文件描述符上的低级套接字函数。返回表示操作系统中底层套接字的原始文件描述符。您可以在此文件描述符上调用各种低级套接字函数,如
setsockopt
。这些功能可通过
libc
crater获得。例如,您可以在
libstd
源代码中找到如何执行此操作。您可能还希望使用crates.io中的
libc
——内置的libc位于功能门后面,因此在beta版中不可用


为了设置发送/读取超时,您需要使用
SO\u SNDTIMEO
/
SO\u RCVTIMEO
选项调用
setsockopt
,提供指向实例的指针。这基本上就是用C语言实现的方法。如果您愿意,我可以稍后(可能在几个小时内)对此进行扩展。

希望std::net能够很快稳定下来。你能解释一下如何使用AsRawFd?非常感谢。