retroforth/source/interfaces/io/sockets.forth
crc 1ad903a1e7 fix some typos, add glossary entries for the socket: words
FossilOrigin-Name: e3c7f14b1463c9d3f113f805cce17751026ba8e48aef990028f8b6fc0b7d5c50
2019-06-06 17:15:52 +00:00

28 lines
982 B
Forth

This implements the Forth part of the socket I/O interface.
The sockets interface is low level, and very close to the
underlying BSD sockets model.
~~~
{{
'io:Sockets var
:identify
@io:Sockets n:zero? [
#7 io:scan-for dup n:negative?
[ drop 'IO_DEVICE_TYPE_0004_NOT_FOUND s:put nl ]
[ !io:Sockets ] choose ] if ;
---reveal---
:io:socket-operation identify @io:Sockets io:invoke ;
}}
:socket:gethostbyname (as-) #0 io:socket-operation ;
:socket:create (-n) #1 io:socket-operation ;
:socket:bind (sn-n) #2 io:socket-operation ;
:socket:listen (nn-nn) #3 io:socket-operation ;
:socket:accept (n-nn) #4 io:socket-operation ;
:socket:connect (n-nn) #5 io:socket-operation ;
:socket:send (sn-nn) #6 io:socket-operation ;
:socket:recv (ann-nn) #8 io:socket-operation ;
:socket:close (n-) #10 io:socket-operation ;
:socket:configure (ss-) #11 io:socket-operation ;
~~~