MST
星途 面试题库

面试题:Rust中使用Socket进行基本网络连接的实现

请使用Rust的Socket编写一个简单的客户端 - 服务器程序,服务器监听本地特定端口,客户端连接到该服务器,并发送一条简单的文本消息,服务器接收并打印该消息。要求处理好错误情况。
44.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

服务器端代码

use std::net::{TcpListener, TcpStream};
use std::io::{Read, Write};

fn main() {
    let listener = TcpListener::bind("127.0.0.1:8080").expect("Failed to bind to address");
    for stream in listener.incoming() {
        let stream = stream.expect("Failed to accept connection");
        handle_connection(stream);
    }
}

fn handle_connection(mut stream: TcpStream) {
    let mut buffer = [0; 1024];
    match stream.read(&mut buffer) {
        Ok(len) => {
            let msg = std::str::from_utf8(&buffer[..len]).expect("Failed to convert to string");
            println!("Received: {}", msg);
        }
        Err(e) => eprintln!("Error reading from socket: {}", e),
    }
}

客户端代码

use std::net::TcpStream;
use std::io::{Write};

fn main() {
    let mut stream = TcpStream::connect("127.0.0.1:8080").expect("Failed to connect");
    let msg = "Hello, server!";
    match stream.write(msg.as_bytes()) {
        Ok(_) => println!("Message sent successfully"),
        Err(e) => eprintln!("Error sending message: {}", e),
    }
}