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?非常感谢。