Skip to content

Instantly share code, notes, and snippets.

@spytheman
Last active March 28, 2020 18:19
Show Gist options
  • Select an option

  • Save spytheman/a5ecd0d82d6893c9ad325532b973a800 to your computer and use it in GitHub Desktop.

Select an option

Save spytheman/a5ecd0d82d6893c9ad325532b973a800 to your computer and use it in GitHub Desktop.
A simple tcp echo server written in the V programming language.
import net
// Connect with: `nc 127.0.0.1 12345`
fn handle_connection(con net.Socket) {
eprintln('new client connected')
defer { eprintln('closing connection: $con') 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('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)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment