Does gforth contain network socket capability?

北慕城南 提交于 2019-12-04 16:27:26

Though I don't see any documentation about it, there is a socket.fs which binds to libc.

Provided 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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!