gforth 是否包含网络套接字功能?
Does gforth contain network socket capability?
通常,在学习一门语言时,我会编写某种服务器。 gforth 是否能够使用网络套接字?
我在 the manual.
中没有看到任何关于套接字的信息
虽然我没有看到任何关于它的文档,但有一个 socket.fs
绑定到 libc。
- You can find some examples of FORTH that use sockets.fs on Rosetta Code, specifically the
ECHO
server example
提供下 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
不过,ymmv
nc localhost 12321
PING
PING
PONG
PONG
没有 Keepalive,因此从逻辑上讲您会断开连接。
通常,在学习一门语言时,我会编写某种服务器。 gforth 是否能够使用网络套接字?
我在 the manual.
中没有看到任何关于套接字的信息虽然我没有看到任何关于它的文档,但有一个 socket.fs
绑定到 libc。
- You can find some examples of FORTH that use sockets.fs on Rosetta Code, specifically the
ECHO
server example
提供下 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
不过,ymmv
nc localhost 12321
PING
PING
PONG
PONG
没有 Keepalive,因此从逻辑上讲您会断开连接。