Docs / Tutorial
14 · TCP echo
listen_on / accept / xu handle per connection.
ln := net.listen_on("tcp", "127.0.0.1:19000") or (err) { << 1 }
c := ln.accept() or (err) { -> }
xu handle(c)From another terminal: printf ping | nc 127.0.0.1 19000.
On Windows, TCP dial/listen return an error stub — they do not fail silently.
Source
@main
#net
// TCP echo。
// printf ping | nc 127.0.0.1 19000
// UDP 见 15udp_echo。
fn handle(c net.Conn) {
mut conn := c
buf := conn.read(4096) or (err) {
conn.close() or (e2) { << }
<<
}
if buf.len == 0 {
conn.close() or (err) { << }
<<
}
conn.write(&buf) or (err) { << }
conn.close() or (err) { << }
}
fn main() int {
ln := net.listen_on("tcp", "127.0.0.1:19000") or (err) {
println(err.msg())
<< 1
}
println("tcp://127.0.0.1:19000 echo")
mut running := true
while running {
c := ln.accept() or (err) {
->
}
xu handle(c)
}
<< 0
}
Run from the separate examples repository root; source files live under examples/.