备注
创建项目命令
cargo new s1 && cd s1
cargo new tcpserver
cargo new tcpcline
运行项目server
cargo run -p tcpserver
打开新cmd运行项目cline
# cargo run -p tcpcline
配置workspace
[workspace]
members = ["tcpserver", "tcpcline"]
Tcp server服务端
use std::io::{Read, Write};
use std::net::TcpListener;
use std::str; // 引入字符串转换包
fn main() {
// 设置监听端口和地址
let listener = TcpListener::bind("127.0.0.1:3000").unwrap();
println!("running on port 3000....");
// 请求进来
for stream in listener.incoming() {
// 设置为可变
let mut stream = stream.unwrap();
println!(" Connection established");
// 设置接收缓冲区
let mut buffer = [0; 1024];
// 服务端接收数据
stream.read(&mut buffer).unwrap();
// println!(
// "Request from cline:{:?}",
// str::from_utf8(&buffer).unwrap() // 转换为utf8格式
// );
// 服务端返回数据
stream.write(&mut buffer).unwrap();
}
}
Tcp cline客户端
use std::io::{Read, Write};
use std::net::TcpStream;
use std::str; // 引入字符串转换包
fn main() {
println!("Hello, world!");
let mut stream = TcpStream::connect("127.0.0.1:3000").unwrap();
// 转换为字节类型,向服务器发送
stream.write("Hello".as_bytes()).unwrap();
let mut buffer = [0; 5]; // 注意括号里格式
// 读取服务器返回的消息
stream.read(&mut buffer).unwrap();
println!(
"Response from server:{:?}",
str::from_utf8(&buffer).unwrap() // 转换为utf8格式
);
}