1个不稳定版本

0.1.0 2024年4月25日

#11#套接字

自定义许可证

11KB
211

local-socket

tokio支持的Unix域套接字简单客户端 / 服务器包装器。

无需自己实现消息封装。在底层,当通过线发送字节数组时,它会处理消息封装。

当客户端向服务器发送字节数组(反之亦然)时,服务器保证在另一端接收到一个包含完整数组的单个事件。

使用方法

服务器

let dir = TempDir::new().unwrap();
let socket = dir.path().join("foobar.socket");

// Create a new server listening at a filesystem path
let mut server = SocketServer::listen(socket).unwrap();

loop {

  // Handle inbound connections
  let mut connection = server.next().await.unwrap().unwrap();

  // Receive a message from the client
  let msg = connection.next().await.unwrap().unwrap();

  // Send the client a message
  connection.write("pong".into()).unwrap();
}

客户端

let mut connection = SocketConnection::connect(socket).await.unwrap();

// Ping - Pong
loop {
  // Send the server a message
  connection.write("ping".into()).unwrap();

  // Receive a message from the server
  let msg = connection.next().await.unwrap().unwrap();
}

依赖项

~3–12MB
~116K SLoC