import net // This file shows how a basic TCP echo server can be implemented using // the `net` module. You can connect to the server by using netcat // or telnet, in separate shells, for example: // `nc 127.0.0.1 12345` // `telnet 127.0.0.1 12345` fn handle_connection(con net.Socket) { peer_ip := con.peer_ip() or { '0.0.0.0' } eprintln('${peer_ip:16} | new client connected') defer { eprintln('${peer_ip:16} | closing connection...') con.close() or { } } con.send_string("Welcome to V's TCP Echo server.\n") or { return } for { line := con.read_line() if line.len == 0 { return } eprintln('${peer_ip:16} | received line: ' + line.trim_space()) con.send_string(line) or { return } } } fn main() { server_port := 12345 eprintln('Starting an echo server, listening on port: $server_port') server := net.listen(server_port) or { panic(err) } for { con := server.accept() or { server.close() or { } panic(err) } go handle_connection(con) } }