From b0a93c747700db2114eaacd25f5a344b392aa585 Mon Sep 17 00:00:00 2001 From: Brad Nelson Date: Fri, 12 Aug 2022 22:47:38 -0700 Subject: [PATCH] Adding curl-lite example. --- examples/curl.fs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 examples/curl.fs diff --git a/examples/curl.fs b/examples/curl.fs new file mode 100644 index 0000000..fd50e1f --- /dev/null +++ b/examples/curl.fs @@ -0,0 +1,38 @@ +#! /usr/bin/env ueforth + +also sockets + +." GETTING HOST" cr + +z" google.com" gethostbyname constant google.com + +." SETTING UP ADDRESS" cr + +sockaddr googleaddr + +80 googleaddr ->port! +google.com ->h_addr googleaddr ->addr! +google.com ->h_addr ip. cr + +." CREATING SOCKET" cr + +AF_INET SOCK_STREAM 0 socket value sock + +." CONNECTING..." cr + +sock googleaddr sizeof(sockaddr_in) connect throw + +." CONNECTED" cr + +s" GET / HTTP/1.0" sock write-file throw + +: semit ( ch s -- ) swap >r rp@ swap 1 swap write-file throw rdrop ; +: scr 13 sock semit 10 sock semit ; +scr +scr + +." REQUESTED" cr + +here 100000 sock read-file throw constant len +here len type +bye