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


Rust UdpSocket.peek用法及代码示例


本文简要介绍rust语言中 std::net::UdpSocket.peek 的用法。

用法

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

在套接字上从它所连接的远程地址接收单个数据报,而不从输入队列中删除消息。成功时,返回查看的字节数。

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

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

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

UdpSocket::connect 将此套接字连接到远程地址。如果套接字未连接,此方法将失败。

错误

如果套接字未连接,此方法将失败。 connect 方法将此套接字连接到远程地址。

例子

use std::net::UdpSocket;

let socket = UdpSocket::bind("127.0.0.1:34254").expect("couldn't bind to address");
socket.connect("127.0.0.1:8080").expect("connect function failed");
let mut buf = [0; 10];
match socket.peek(&mut buf) {
    Ok(received) => println!("received {} bytes", received),
    Err(e) => println!("peek function failed: {:?}", e),
}

相关用法


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