diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-16 10:22:05 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-16 10:28:25 +0000 |
| commit | 489c393d47ac42dee939e741b732958b082539a7 (patch) | |
| tree | 9f5619374f605bd276d78ccc5e793a6433ffa6fc /examples/networking/echo_server.zc | |
| parent | 46b0cfd792a2187d8984f55b9cf59493ec078239 (diff) | |
Fixed bug related to 'defer' and added some examples.
Diffstat (limited to 'examples/networking/echo_server.zc')
| -rw-r--r-- | examples/networking/echo_server.zc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/networking/echo_server.zc b/examples/networking/echo_server.zc new file mode 100644 index 0000000..1cecb74 --- /dev/null +++ b/examples/networking/echo_server.zc @@ -0,0 +1,35 @@ + +import "std/net.zc" + +fn main() { + "Starting Echo Server on 127.0.0.1:8080..."; + + var listener_res = TcpListener::bind("127.0.0.1", 8080); + if listener_res.is_err() { + !"Failed to bind: {listener_res.err}"; + return 1; + } + + var listener = listener_res.unwrap(); + defer listener.close(); + + loop { + var client_res = listener.accept(); + if client_res.is_ok() { + var stream = client_res.unwrap(); + defer stream.close(); + + var buf: char[1024]; + + var read_res = stream.read(buf, 1024); + + if read_res.is_ok() { + var bytes = read_res.unwrap(); + if bytes > 0 { + stream.write(buf, bytes); + "Echoed {bytes} bytes."; + } + } + } + } +} |
