rust 我可以从socket2::Socket转换为时雄::net::TcpStream吗?

ubbxdtey  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(158)

我想使用时雄::net::TcpStream作为异步TCP侦听器。另一方面,我还想在socket2::Socket中使用set_reuse_address、set_reuse_port和set_nonblocking。
如何将socket2::Socket转换为时雄::net::TcpStream?
我想使用时雄::net:TcpStream来侦听使用异步回调的高效和非阻塞TCP连接。
如果你发现这样的事情是不可能的,或者我对异步的理解是不正确的,如果你能指出任何东西,我将不胜感激。

ecr0jaav

ecr0jaav1#

是的,您可以将两者从/转换为std::net::TcpStream,因此您可以将其作为常见的交换格式。

use tokio::net::TcpStream;
use socket2::Socket;
fn socket_to_async_stream(s: Socket) -> std::io::Result<TcpStream> {
    std::net::TcpStream::from(s).try_into()
}
fn async_stream_to_socket(t: TcpStream) -> std::io::Result<Socket> {
    t.into_std().map(Into::into)
}

字符串

相关问题