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


Rust UdpSocket.peek_from用法及代码示例


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

用法

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

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

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

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

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

例子

use std::net::UdpSocket;

let socket = UdpSocket::bind("127.0.0.1:34254").expect("couldn't bind to address");
let mut buf = [0; 10];
let (number_of_bytes, src_addr) = socket.peek_from(&mut buf)
                                        .expect("Didn't receive data");
let filled_buf = &mut buf[..number_of_bytes];

相关用法


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