use std::net::TcpListener;
fn main() {
// 绑定特定的IP地址和端口号
let listener = TcpListener::bind("127.0.0.1:8080").expect("Failed to bind");
// 遍历连接,处理每个连接
for stream in listener.incoming() {
let stream = stream.expect("Failed to accept");
// 在这里处理新连接,例如读取和写入数据
println!("New connection: {:?}", stream);
}
}
use std::net::TcpListener;
:引入TcpListener
,它是用于监听TCP连接的结构体。
let listener = TcpListener::bind("127.0.0.1:8080").expect("Failed to bind");
:
TcpListener::bind("127.0.0.1:8080")
:尝试绑定到指定的IP地址127.0.0.1
(本地回环地址)和端口号8080
。如果绑定成功,返回一个TcpListener
实例;如果失败,返回一个错误。
.expect("Failed to bind")
:如果bind
操作返回一个错误,expect
会使程序崩溃,并打印出指定的错误信息Failed to bind
。
for stream in listener.incoming()
:incoming
方法返回一个迭代器,用于遍历接收到的新连接。每次迭代返回一个Result<Stream>
,其中Stream
是一个表示TCP连接的结构体。
let stream = stream.expect("Failed to accept");
:从迭代器获取到的连接结果中提取Stream
实例,如果获取失败,程序崩溃并打印错误信息Failed to accept
。
println!("New connection: {:?}", stream);
:这里只是简单地打印出新连接的信息,实际应用中可以在这个位置对连接进行数据的读取、写入等处理操作。