9 unstable releases (3 breaking)
Uses new Rust 2024
| 0.4.2 | Sep 19, 2025 |
|---|---|
| 0.4.1 | Aug 26, 2025 |
| 0.3.4 | Aug 21, 2025 |
| 0.3.0 | Jul 31, 2025 |
| 0.1.0 | Jul 30, 2025 |
#8 in #conn
669 downloads per month
Used in udp-relay
17KB
392 lines
udp连接池
async fn main() {
init_log();
let addr = Address::from("127.0.0.1:3002");
// 创建udp池
let pool = Arc::new(udp_pool::Pool::default());
// 池里加bs
pool.add_backend(addr.clone());
// 设置最大数量
pool.set_max_conn(Some(1));
// 获取一个sender
let r1 = pool
.clone()
.get("127.0.0.1:1000".parse().unwrap(), None)
.await;
assert_eq!(r1.is_ok(), true);
assert_eq!(pool.get_cur_conn(), 1);
// 获取第二个应该会报池满了的错误
let r2 = pool
.clone()
.get("127.0.0.1:1001".parse().unwrap(), None)
.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);
// 清除所有的
pool.remove_backend(&addr);
// 记数回归0
assert_eq!(pool.get_cur_conn(), 0);
}
Dependencies
~2–15MB
~123K SLoC