52 lines
865 B
Plaintext
Raw Normal View History

2025-02-06 12:49:17 +01:00
import sys
struct sockaddr_in {
sin_family Int16
sin_port Int16
sin_addr Int64
sin_zero Int64
}
// Open server and client in 2 terminals:
// [1] q run examples/server
// [2] netcat 127.0.0.1 8080
main() {
socket := sys.socket(2, 1, 0)
if socket < 0 {
sys.write(1, "socket error\n", 13)
sys.exit(1)
}
addr := new(sockaddr_in)
addr.sin_family = 2
addr.sin_port = 0x901F
addr.sin_addr = 0
addr.sin_zero = 0
if sys.bind(socket, addr, 20) != 0 {
sys.write(1, "bind error\n", 11)
sys.exit(1)
}
delete(addr)
if sys.listen(socket, 10) != 0 {
sys.write(1, "listen error\n", 13)
sys.exit(1)
}
sys.write(1, "listening...\n", 13)
loop {
conn := sys.accept(socket, 0, 0)
if conn != -1 {
sys.write(1, "accepted\n", 9)
sys.write(conn, "Hello\n", 6)
sys.close(conn)
} else {
sys.write(1, "error\n", 6)
}
}
}