| Crates.io | udp-pool |
| lib.rs | udp-pool |
| version | 0.4.2 |
| created_at | 2025-07-30 08:50:59.117145+00 |
| updated_at | 2025-09-19 09:29:46.608151+00 |
| description | A udp pool |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1773270 |
| size | 33,482 |
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);
}