import netio fn main() { ai := netio.translate_addr( service: '1081' sock_type: netio.sock_stream family: netio.af_inet6 flags: netio.ai_passive )! mut socket := netio.Socket{} mut listen_addr := netio.SocketAddr{} for a in ai { socket = netio.Socket.new(a.family, a.sock_type, a.protocol)! socket.set_option(C.IPPROTO_IPV6, C.IPV6_V6ONLY, 0)! socket.bind(a.addr) or { socket.close()! continue } listen_addr = a.addr break } defer { socket.close() or { panic(err) } } socket.listen(10) or { eprintln('LISTEN: ${err}') exit(1) } println('Listening on ${listen_addr}...') for { conn, remote_addr := socket.accept() or { eprintln('ACCEPT: ${err}') exit(1) } eprintln(netio.name(remote_addr)!) eprintln('Remote address: ${remote_addr} | ${remote_addr.family()} | ${remote_addr.size()}') eprintln(remote_addr.u8_array()) conn.close()! } }