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(netio.ipproto_ipv6, netio.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.translate_name(remote_addr, flags: netio.ni_numerichost | netio.ni_numericserv )!) eprintln(netio.translate_name(remote_addr)!) eprintln('Remote address: ${remote_addr}') conn.close()! } }