Rust中TCP Socket超时后重连实现方案咨询
Rust TCP客户端连接失败自动重试实现
当然可以实现这种需求。作为Rust新手,你可以通过简单的循环+错误处理来实现客户端持续重试连接,直到服务器启动并成功建立连接。
下面是一个实用的示例代码:
use std::net::TcpStream; use std::time::Duration; use std::thread; fn main() { // 替换为你的服务器地址和端口 let server_addr = "127.0.0.1:8080"; println!("正在尝试连接服务器: {}", server_addr); // 无限循环,直到连接成功 loop { match TcpStream::connect(server_addr) { Ok(stream) => { println!("连接服务器成功!"); // 这里可以添加你的业务逻辑,比如读写数据 // 示例:handle_client_stream(stream); break; // 连接成功后退出重试循环 } Err(error) => { println!("连接失败: {},5秒后重新尝试...", error); // 暂停一段时间再重试,避免高频重试消耗资源 thread::sleep(Duration::from_secs(5)); } } } }
关键逻辑说明:
- 用
loop创建无限重试循环,直到连接成功跳出 TcpStream::connect尝试建立TCP连接,返回Result类型,通过match处理成功/失败场景- 连接失败时打印错误信息,调用
thread::sleep设置重试间隔(可根据需求调整时长) - 连接成功后,你可以在
Ok分支里添加数据收发等后续逻辑
内容的提问来源于stack exchange,提问作者hopes32 _
相关产品推荐
相关产品推荐

