/
nv-lang
/
nova
Обзор
Документация
Войти
/
nv-lang
/
nova
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
examples/net/echo_client.nv
50 строк
2 KB
Evgeniy Golovin
std(№492): write_str удалён, 13 носителей на .write(); спека приведена к реализации; №493-496, план 257
09 авг 2026, 02:46
09 авг 2026, 02:46
1ce43d8
Код
Авторство
О чём код?
// SPDX-License-Identifier: MIT OR Apache-2.0 // Echo client example. Connects to an echo server, sends a message, reads // the echo back. Demonstrates TcpStream.connect + write + read. // // Usage (start echo_server.nv first): // nova build examples/net/echo_server.nv -o echo_server && ./echo_server & // nova build examples/net/echo_client.nv -o echo_client && ./echo_client // // See also: examples/net/echo_server.nv module net.echo_client import std.net.{SocketAddr, TcpStream, real_net} const PORT u16 = 7777 const MESSAGE = "hello from nova" fn main() { with Net = real_net() { ro addr = SocketAddr.loopback(PORT) supervised { spawn { match TcpStream.connect(addr) { Err(_) => { println("Connect failed — is echo_server running on port ${PORT}?") } Ok(consume stream) => { println("Connected to ${PORT}") match stream.write(MESSAGE) { Err(_) => { println("Write failed"); stream.close() } Ok(_) => { match stream.read_bytes(256) { Err(_) => { println("Read failed"); stream.close() } Ok(echo_bytes) => { ro eb []u8 = echo_bytes ro echo = unsafe { eb.to_str_unchecked() } println("Echo: ${echo}") stream.close() } } } } } } } } } println("Done.") }