本文简要介绍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 UdpSocket.peek_from用法及代码示例
- Rust UdpSocket.peer_addr用法及代码示例
- Rust UdpSocket.set_multicast_loop_v6用法及代码示例
- Rust UdpSocket.send用法及代码示例
- Rust UdpSocket.ttl用法及代码示例
- Rust UdpSocket.set_write_timeout用法及代码示例
- Rust UdpSocket.set_ttl用法及代码示例
- Rust UdpSocket.broadcast用法及代码示例
- Rust UdpSocket.try_clone用法及代码示例
- Rust UdpSocket.set_broadcast用法及代码示例
- Rust UdpSocket.send_to用法及代码示例
- Rust UdpSocket.recv_from用法及代码示例
- Rust UdpSocket.bind用法及代码示例
- Rust UdpSocket.recv用法及代码示例
- Rust UdpSocket.set_multicast_loop_v4用法及代码示例
- Rust UdpSocket.write_timeout用法及代码示例
- Rust UdpSocket.set_read_timeout用法及代码示例
- Rust UdpSocket.set_nonblocking用法及代码示例
- Rust UdpSocket.connect用法及代码示例
- Rust UdpSocket.multicast_loop_v6用法及代码示例
- Rust UdpSocket.read_timeout用法及代码示例
- Rust UdpSocket.multicast_loop_v4用法及代码示例
- Rust UdpSocket.multicast_ttl_v4用法及代码示例
- Rust UdpSocket.set_multicast_ttl_v4用法及代码示例
- Rust UdpSocket.local_addr用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::net::UdpSocket.peek。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。