Files
zern/examples/tcp_client.zr
2025-06-30 12:15:06 +02:00

31 lines
739 B
Plaintext

func main[] : I64
let s: I64 = socket(2, 1, 0)
if s < 0
panic("socket() failed")
let port: I64 = 80
let sa: Ptr = calloc(16)
String.set(sa, 0, 2)
String.set(sa, 1, 0)
String.set(sa, 2, Bit.rshift(port, 8) && 255)
String.set(sa, 3, port && 255)
// 23.192.228.80
String.set(sa, 4, 23)
String.set(sa, 5, 192)
String.set(sa, 6, 228)
String.set(sa, 7, 80)
if connect(s, sa, 16) < 0
panic("connect() failed")
free(sa)
let req: String = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
send(s, req, strlen(req), 0)
let resp: String = malloc(60000)
let n: I64 = read(s, resp, 60000)
String.set(resp, n, 0)
print(resp)
free(resp)
close(s)