當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。