Often, when learning a language I'll write a server of some sort. Does gforth have the capability to use network sockets?
I don't see anything about sockets in the manual.
Often, when learning a language I'll write a server of some sort. Does gforth have the capability to use network sockets?
I don't see anything about sockets in the manual.
Though I don't see any documentation about it, there is a socket.fs
which binds to libc.
ECHO
server exampleProvided under the GNU FDL, from Rossetta code by IanOsgood (commit)
include unix/socket.fs
128 constant size
: (echo) ( sock buf -- sock buf )
begin
cr ." waiting..."
2dup 2dup size read-socket nip
dup 0>
while
." got: " 2dup type
rot write-socket
repeat
drop drop drop ;
create buf size allot
: echo-server ( port -- )
cr ." Listening on " dup .
create-server
dup 4 listen
begin
dup accept-socket
cr ." Connection!"
buf ['] (echo) catch
cr ." Disconnected (" . ." )"
drop close-socket
again ;
12321 echo-server
However, ymmv
nc localhost 12321
PING
PING
PONG
PONG
There are no Keepalives so you'll logically get disconnects from that.