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