set_up_connection/
set-up-connection.rs

1use noq::{Endpoint, ServerConfig};
2use std::error::Error;
3use std::net::{IpAddr, Ipv4Addr, SocketAddr};
4
5fn main() {}
6
7#[allow(dead_code, unused_variables)] // Included in `set-up-connection.md`
8async fn server(config: ServerConfig) -> Result<(), Box<dyn Error>> {
9    // Bind this endpoint to a UDP socket on the given server address.
10    let endpoint = Endpoint::server(config, SERVER_ADDR)?;
11
12    // Start iterating over incoming connections.
13    while let Some(conn) = endpoint.accept().await {
14        let connection = conn.await?;
15
16        // Save connection somewhere, start transferring, receiving data, see DataTransfer tutorial.
17    }
18
19    Ok(())
20}
21
22#[allow(dead_code, unused_variables)] // Included in `set-up-connection.md`
23async fn client() -> Result<(), Box<dyn Error>> {
24    // Bind this endpoint to a UDP socket on the given client address.
25    let endpoint = Endpoint::client(CLIENT_ADDR)?;
26
27    // Connect to the server passing in the server name which is supposed to be in the server
28    // certificate.
29    let connection = endpoint.connect(SERVER_ADDR, SERVER_NAME)?.await?;
30
31    // Start transferring, receiving data, see data transfer page.
32
33    Ok(())
34}
35
36const SERVER_NAME: &str = "localhost";
37const LOCALHOST_V4: IpAddr = IpAddr::V4(Ipv4Addr::LOCALHOST);
38const CLIENT_ADDR: SocketAddr = SocketAddr::new(LOCALHOST_V4, 5000);
39const SERVER_ADDR: SocketAddr = SocketAddr::new(LOCALHOST_V4, 5001);