Adding curl-lite example.
This commit is contained in:
38
examples/curl.fs
Normal file
38
examples/curl.fs
Normal file
@ -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
|
||||||
Reference in New Issue
Block a user