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] curl http://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, 128) != 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 >= 0 { sys.write(conn, "HTTP/1.1 200 OK\r\nContent-Length: 6\r\n\r\nHello\n", 44) sys.close(conn) } else { sys.write(1, "error\n", 6) } } }