// TCP Echo Server — binds to 127.0.0.1:9000 and echoes back received data import Std::Io::{PrintLine, PrintInt}; import Std::Net::{Net_Create, Net_SetReuse, Net_Bind, Net_Listen, Net_Accept, Net_Send, Net_Recv, Net_Close}; import Std::String::{String_Eq}; func Main() -> int { let fd: int = Net_Create(); if fd < 0 { PrintLine("Failed to create socket"); return 1; } if !Net_SetReuse(fd) { PrintLine("Warning: failed to set SO_REUSEADDR"); } if Net_Bind(fd, "127.0.0.1", 9000) == false { PrintLine("Failed to bind"); Net_Close(fd); return 1; } if Net_Listen(fd, 5) == false { PrintLine("Failed to listen"); Net_Close(fd); return 1; } PrintLine("Echo server listening on 127.0.0.1:9000"); let client: int = Net_Accept(fd); if client < 0 { PrintLine("Failed to accept"); Net_Close(fd); return 1; } PrintLine("Client connected"); var running: bool = true; while running { let msg: String = Net_Recv(client, 1024); if String_Eq(msg, "") { running = false; } else { PrintLine("Received:"); PrintLine(msg); let sent: int = Net_Send(client, msg); if sent < 0 { PrintLine("Send failed"); running = false; } } } Net_Close(client); Net_Close(fd); PrintLine("Server shut down"); return 0; }