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


Rust UdpSocket用法及代碼示例


本文簡要介紹rust語言中 Struct std::net::UdpSocket 的用法。

用法

pub struct UdpSocket(_);

一個 UDP 套接字。

通過 bind 將其映射到套接字地址創建 UdpSocket 後,數據可以是 sent toreceived from 任何其他套接字地址。

盡管 UDP 是一種無連接協議,但此實現提供了一個接口來設置應發送和接收數據的地址。使用 connect 設置遠程地址後,可以使用 send recv 向該地址發送和接收數據。

正如 IETF RFC 768 中的用戶數據報協議規範所述,UDP 是一種無序、不可靠的協議;有關 TCP 原語,請參閱 TcpListener TcpStream

例子

use std::net::UdpSocket;

fn main() -> std::io::Result<()> {
    {
        let socket = UdpSocket::bind("127.0.0.1:34254")?;

        // Receives a single datagram message on the socket. If `buf` is too small to hold
        // the message, it will be cut off.
        let mut buf = [0; 10];
        let (amt, src) = socket.recv_from(&mut buf)?;

        // Redeclare `buf` as slice of the received data and send reverse data back to origin.
        let buf = &mut buf[..amt];
        buf.reverse();
        socket.send_to(buf, &src)?;
    } // the socket is closed here
    Ok(())
}

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Struct std::net::UdpSocket。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。