跳到主要内容

TCP Client

TCP Client 主动连接 Server,然后通过 TcpStream 发送和接收字节。

客户端代码

你可以配合上一节的 Echo Server 运行:

src/main.rs
use std::io::{Read, Write};
use std::net::TcpStream;

fn main() -> std::io::Result<()> {
let mut stream = TcpStream::connect("127.0.0.1:7878")?;

stream.write_all(b"hello rust")?;

let mut buf = [0; 1024];
let n = stream.read(&mut buf)?;

println!("{}", String::from_utf8_lossy(&buf[..n]));
Ok(())
}

字节和字符串

网络传输的是字节,不是 Rust 字符串。b"hello rust" 是字节串,String::from_utf8_lossy 会把收到的字节尽量转换成可显示文本。

常见错误

如果 Server 没有启动,connect 会返回类似“connection refused”的错误。

如果端口不一致,Client 会连接到错误位置或连接失败。

小结

TCP Client 的主要动作是 connectwrite_allread。你写任何 TCP 客户端时,都可以从这个流程开始。