最基本的Hello World示例:
TcpServer端:
use std::{net::TcpListener, io::{Read, Write}}; fn main() { //綁定本機3000端口 let listener = TcpListener::bind("127.0.0.1:3000").unwrap(); println!("Running on port 3000..."); //當有client連接上來時 for stream in listener.incoming(){ let mut stream = stream.unwrap(); println!("Connection established!"); //創建1k的緩存區 let mut buffer = [0;1024]; //讀取client發過來的內容 stream.read(&mut buffer).unwrap(); //原樣送回去(相當於netty的EchoServer) stream.write(&mut buffer).unwrap(); } }
TcpClient端:
use std::net::{TcpStream}; use std::io::{Read,Write}; use std::str; fn main() { //連接到server let mut stream = TcpStream::connect("127.0.0.1:3000").unwrap(); //發送字符串 stream.write("hello,rust.歡迎使用Rust".as_bytes()).unwrap(); //創建1k的緩沖區,用於接收server發過來的內容 let mut buffer = [0;1024]; //讀取server發過來的內容 stream.read(&mut buffer).unwrap(); //打印接收到的內容(注:如果收到的實際內容小於1k,后面的部分默認全是\u{0}填充,所以要trim_matches去掉) println!("Response from server:{:?}",str::from_utf8(&buffer).unwrap().trim_matches('\u{0}')); }