gforth是否包含网络套接字功能?

Eva*_*oll 3 sockets ip networking forth gforth

通常,在学习语言时,我会编写某种服务器.gforth是否有能力使用网络套接字?

我在手册中没有看到任何关于套接字的信息.

Eva*_*oll 7

虽然我没有看到任何关于它的文档,但有一个socket.fs绑定到libc.

GNU FDL下提供,来自IanOsgood的Rossetta代码(提交)

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
Run Code Online (Sandbox Code Playgroud)

但是,ymmv

nc localhost 12321
PING
PING
PONG
PONG
Run Code Online (Sandbox Code Playgroud)

没有Keepalive,所以你可以从逻辑上断开连接.