溫馨提示×

Rust與Linux網絡編程如何實現

小樊
99
2024-11-19 18:07:52
欄目: 編程語言

在Rust中實現Linux網絡編程,你可以使用標準庫中的std::net模塊

  1. 創建一個TCP服務器:
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::thread;

fn handle_client(mut stream: TcpStream) {
    let mut buffer = [0; 1024];
    match stream.read(&mut buffer) {
        Ok(_) => {
            println!("接收到客戶端的數據: {}", String::from_utf8_lossy(&buffer[..]));
            stream.write(b"Hello from server!").unwrap();
        }
        Err(e) => println!("無法讀取客戶端數據: {}", e),
    }
}

fn main() {
    let listener = TcpListener::bind("127.0.0.1:7878").unwrap();
    println!("服務器已啟動,監聽端口7878");

    for stream in listener.incoming() {
        match stream {
            Ok(stream) => {
                thread::spawn(move || {
                    handle_client(stream);
                });
            }
            Err(e) => println!("無法接受客戶端連接: {}", e),
        }
    }
}
  1. 創建一個TCP客戶端:
use std::io::{Read, Write};
use std::net::TcpStream;

fn main() {
    let mut stream = TcpStream::connect("127.0.0.1:7878").unwrap();
    println!("已連接到服務器");

    stream.write(b"Hello from client!").unwrap();
    let mut buffer = [0; 1024];
    match stream.read(&mut buffer) {
        Ok(_) => {
            println!("接收到服務器的數據: {}", String::from_utf8_lossy(&buffer[..]));
        }
        Err(e) => println!("無法讀取服務器數據: {}", e),
    }
}

這些示例展示了如何使用Rust的std::net模塊創建一個簡單的TCP服務器和客戶端。你可以根據需要修改這些示例以滿足你的需求,例如使用UDP協議、實現更復雜的數據處理邏輯等。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女