MST

星途 面试题库

面试题:Rust中TCP协议编程基础

在Rust中,使用`std::net::TcpStream`建立一个简单的TCP客户端连接到本地服务器(假设服务器监听在127.0.0.1:8080),并发送一条简单的消息,然后接收服务器的响应。请写出核心代码片段,并简要说明`TcpStream`相关方法的作用。
13.9万 热度难度
编程语言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 message = "Hello, server!";
    stream.write_all(message.as_bytes())?;
    // 接收响应
    let mut buffer = [0; 1024];
    let bytes_read = stream.read(&mut buffer)?;
    let response = String::from_utf8_lossy(&buffer[..bytes_read]);
    println!("Received: {}", response);
    Ok(())
}

TcpStream相关方法作用

  • TcpStream::connect(addr: impl ToSocketAddrs):用于连接到指定地址的TCP服务器,返回一个TcpStream实例。如果连接失败,会返回一个io::Error
  • stream.write_all(data: &[u8]):将指定字节数组数据写入到TCP流中。它会尝试写入所有数据,直到成功或遇到错误。如果成功,返回Ok(());否则返回io::Error
  • stream.read(buf: &mut [u8]):从TCP流中读取数据到给定的字节数组中。返回值是实际读取的字节数。如果读取时遇到错误,会返回io::Error