multiple_addresses/
multiple_addresses.rs1use axum::{routing::get, Router};
2use futures_util::future::try_join_all;
3use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
4
5#[tokio::main]
6async fn main() {
7 let servers = vec![
8 SocketAddr::new(Ipv4Addr::LOCALHOST.into(), 3000),
9 SocketAddr::new(Ipv6Addr::LOCALHOST.into(), 3000),
10 ]
11 .into_iter()
12 .map(|addr| tokio::spawn(start_server(addr)));
13
14 try_join_all(servers).await.unwrap();
16}
17
18async fn start_server(addr: SocketAddr) {
19 let app = Router::new().route("/", get(|| async { "Hello, world!" }));
20
21 axum_server::bind(addr)
22 .serve(app.into_make_service())
23 .await
24 .unwrap();
25}