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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。