当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust UnixDatagram.peek_from用法及代码示例


本文简要介绍rust语言中 std::os::unix::net::UnixDatagram.peek_from 的用法。

用法

pub fn peek_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>

在套接字上接收单个数据报消息,而不将其从队列中删除。成功时,返回读取的字节数和来源。

必须使用具有足够大小的有效字节数组buf 来调用该函数以保存消息字节。如果消息太长而无法放入提供的缓冲区,则可能会丢弃多余的字节。

连续调用返回相同的数据。这是通过将MSG_PEEK 作为标志传递给底层recvfrom 系统调用来实现的。

不要使用这个函数来实现忙等待,而是使用libc::poll来同步一个或多个socket上的IO事件。

例子

#![feature(unix_socket_peek)]

use std::os::unix::net::UnixDatagram;

fn main() -> std::io::Result<()> {
    let socket = UnixDatagram::bind("/tmp/sock")?;
    let mut buf = [0; 10];
    let (len, addr) = socket.peek_from(&mut buf).expect("peek failed");
    Ok(())
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::os::unix::net::UnixDatagram.peek_from。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。