面试题答案
一键面试use std::net::TcpStream;
use std::io::{Read, Write};
fn main() -> std::io::Result<()> {
// 建立TCP连接
let mut stream = TcpStream::connect("127.0.0.1:8080")?;
// 发送字符串数据
let data_to_send = "Hello, server!";
stream.write_all(data_to_send.as_bytes())?;
// 接收服务器返回的数据
let mut buffer = [0; 1024];
let bytes_read = stream.read(&mut buffer)?;
let received_data = String::from_utf8_lossy(&buffer[..bytes_read]);
println!("Received: {}", received_data);
Ok(())
}
主要步骤解释:
- 建立连接:使用
TcpStream::connect
方法尝试连接到指定的服务器地址和端口,这里是127.0.0.1:8080
。如果连接成功,会返回一个TcpStream
实例,连接失败则返回错误。 - 发送数据:定义要发送的字符串
data_to_send
,然后使用write_all
方法将字符串的字节数据发送到服务器。 - 接收数据:定义一个字节数组
buffer
作为接收缓冲区,使用read
方法从连接中读取数据,read
方法返回实际读取的字节数。然后将读取到的字节数据转换为字符串并打印出来。?
操作符用于在发生错误时直接返回错误,简化错误处理。