MST

星途 面试题库

面试题:Rust中TCP编程基础

在Rust中,如何使用`std::net::TcpStream`建立一个简单的TCP客户端连接到指定服务器地址和端口,并发送一段字符串数据,然后接收服务器返回的数据?请写出核心代码片段并解释主要步骤。
46.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
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(())
}

主要步骤解释:

  1. 建立连接:使用TcpStream::connect方法尝试连接到指定的服务器地址和端口,这里是127.0.0.1:8080。如果连接成功,会返回一个TcpStream实例,连接失败则返回错误。
  2. 发送数据:定义要发送的字符串data_to_send,然后使用write_all方法将字符串的字节数据发送到服务器。
  3. 接收数据:定义一个字节数组buffer作为接收缓冲区,使用read方法从连接中读取数据,read方法返回实际读取的字节数。然后将读取到的字节数据转换为字符串并打印出来。?操作符用于在发生错误时直接返回错误,简化错误处理。