9 releases

0.2.0 Mar 21, 2024
0.1.1 Jan 27, 2024
0.0.6 Jan 9, 2024

#1917 in Network programming


Used in tcp-server

MIT/Apache

130KB
1.5K SLoC

Tcp-Client

Crate Crates.io License

Read this in other languages: English, 简体中文.

Description

Convenient client-side TCP service. Also see tcp-server for server-side.

Based on tcp-handler.

With complete API document.

Usage

Add this to your Cargo.toml:

[dependencies]
tcp-client = "~0.2"

Example

use tcp_client::define_client;
use tcp_client::errors::Result;

define_client!(pub CommonMyClient, MyClient, "MyTcpApplication");

impl MyClient {
    // define your method here.
    // example:
    async fn my_method(&mut self) -> Result<()> {
        self.check_func("my_method").await?;
        // ...
        Ok(())
    }
}

#[tokio::main]
async fn main() {
    let mut client = MyClient::connect("127.0.0.1:1234").await.unwrap();
    // use client.
    // example:
    client.my_method().await.unwrap();
}

Version map

Versions map to tcp-server with the same protocol. (Recommended for use in conjunction, otherwise unexpected bugs may occur.)

client version server version
>=0.2.0 >=0.3.0
<0.2.0, >=0.1.0 <0.3.0 >=0.2.0
<0.1.0 <0.2.0

License

Licensed under either of

at your option.

Dependencies

~3–13MB
~161K SLoC