Net Structs
Network structs สำหรับ TCP/UDP ใน Rust
TcpListener
Section titled “TcpListener”use std::net::{TcpListener, TcpStream};use std::io::{Read, Write};
fn handle_client(mut stream: TcpStream) { let mut buffer = [0; 512];
match stream.read(&mut buffer) { Ok(n) => { let request = String::from_utf8_lossy(&buffer[..n]); println!("Received: {}", request);
let response = "HTTP/1.1 200 OK\r\n\r\nHello!"; stream.write_all(response.as_bytes()).ok(); } Err(e) => println!("Error: {}", e), }}
fn main() { // ============================================ // Bind to address // ============================================
let listener = TcpListener::bind("127.0.0.1:0").unwrap(); let addr = listener.local_addr().unwrap(); println!("Listening on {}", addr);
// ============================================ // Non-blocking mode // ============================================
listener.set_nonblocking(true).ok();
// ============================================ // Accept connections // ============================================
for connection in listener.incoming().take(1) { match connection { Ok(stream) => { println!("New connection: {}", stream.peer_addr().unwrap()); handle_client(stream); } Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => { break; } Err(e) => println!("Error: {}", e), } }}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google