1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

vlib/net: add buffered IO, x.net -> net (#6754)

This commit is contained in:
Emily Hudson
2020-11-15 20:54:47 +00:00
committed by GitHub
parent 20bec81678
commit cd2a2cef25
55 changed files with 741 additions and 1648 deletions

View File

@@ -1,45 +0,0 @@
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)
}
}