| Crates.io | tcp-pool |
| lib.rs | tcp-pool |
| version | 0.4.1 |
| created_at | 2025-07-30 08:53:57.842586+00 |
| updated_at | 2025-09-19 09:01:42.107247+00 |
| description | A tcp pool |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1773281 |
| size | 22,404 |
tcp连接池
async fn main() {
init_log();
let addr = Address::from("baidu.com:80");
let pool = Arc::new(tcp_pool::Pool::default());
// 池里加bs
pool.add_backend(addr.clone());
// 设置最大数量
pool.set_max_conn(Some(1));
// 获取第一个连接,应该成功
let r1 = pool.clone().get("").await;
assert_eq!(r1.is_ok(), true);
// 获取第二个应该会报池满了的错误
let r2 = pool.clone().get("").await;
assert_eq!(r2.is_err(), true);
if let Err(net_pool::Error::PoolFull) = r2 {
} else {
assert!(false);
}
// 当前计数为1
assert_eq!(pool.get_cur_conn(), 1);
// 释放r1
drop(r1);
// 记数回归0
assert_eq!(pool.get_cur_conn(), 0);
}