【问题标题】:Does gforth contain network socket capability?gforth 是否包含网络套接字功能?
【发布时间】:2018-04-01 20:47:14
【问题描述】:

通常,在学习一门语言时,我会编写某种服务器。 gforth 是否可以使用网络套接字?

我在the manual 中没有看到任何关于套接字的信息。

【问题讨论】:

    标签: sockets networking ip forth gforth


    【解决方案1】:

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

    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,所以逻辑上你会从中断开连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2013-03-18
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多