#udp #serialization #io

sockit

一个可以读取和写入可序列化数据的UDP套接字

3个不稳定版本

0.2.1 2023年3月30日
0.2.0 2023年3月27日
0.1.0 2023年3月20日

#130 in #udp

每月 31 次下载

MIT许可证

11KB
86 代码行

Sockit 🧦

github crates.io docs.rs build status codecov

一个高级UDP套接字,允许读写(反)序列化值

用法

将其添加到您的Cargo.toml中

[dependencies]
sockit = "0.2.1"

您可以通过绑定到地址来创建套接字

#[tokio::main]
async fn main() {
  let socket = sockit::UdpSocket::bind("127.0.0.1:0").await?;
}

您可以使用套接字发送和接收可序列化对象

use sockit::UdpSocket;
use serde::{Serialize, Deserialize};

/// A (de)serializable type shared between client and server
#[derive(Serialize, Deserialize)]
struct Message {
  id: u32,
  data: String,
}

/// Code running client side
async fn client_side(mut client_socket: UdpSocket) {
  let message = Message {
    id: 1,
    data: "Hello, world!".to_string(),
  };

  client_socket.write::<Message>(&message).await.unwrap();
}

/// Code running server side
async fn server_side(mut server_socket: UdpSocket) {
  let message: Message = server_socket.read::<Message>().await.unwrap().unwrap();
}

依赖关系

~3–11MB
~89K SLoC