为什么这在DrRacket中工作,但在控制台的Racket中不工作?(R:未定义;)

为什么这在DrRacket中工作,但在控制台的Racket中不工作?(R:未定义;),racket,Racket,此代码测试端口连接。为什么这在DrRacket中有效,而在控制台的Racket中无效,或者在可执行文件中无效(Racket->Create executable…) 在DrRacket中工作良好: Welcome to DrRacket, version 5.3.2 [3m]. Language: racket [custom]; memory limit: 512 MB. > (tcp-open? "www.racket-lang.org" 80) #t 来自控制台的错误消息为: We

此代码测试端口连接。为什么这在DrRacket中有效,而在控制台的Racket中无效,或者在可执行文件中无效(Racket->Create executable…)

在DrRacket中工作良好:

Welcome to DrRacket, version 5.3.2 [3m].
Language: racket [custom]; memory limit: 512 MB.
> (tcp-open? "www.racket-lang.org" 80)
#t
来自控制台的错误消息为:

Welcome to Racket v5.3.2.
> (require racket/tcp)
> (define (tcp-open? host port)
  (with-handlers ((exn:fail:network? (lambda (e) #f)))
    (define-values (inp outp) (tcp-connect host port))
    (close-input-port inp)
    (close-output-port outp)
    #t))
> (tcp-open? "www.racket-lang.org" 80)
R: undefined;
 cannot reference undefined identifier
  context...:
   C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7

在命令行为我工作。我在Racket v6.0.0.1和v5.3中进行了测试。你能在命令行中列出运行此命令的确切步骤吗?我编辑了这个问题。5.3.6不是最新版本吗?Asumu,这看起来很像Tim Nelson几年前报告的持续存在的Windows bug。正在寻找参考资料。。。不仅在粘贴中,在生成的可执行文件中也是如此。我认为这是因为在Windows中没有正确处理\r。(读行)也有一个bug。啊,我明白了。我使用Linux,所以我没有发现问题@KIMTaegyoon能否在Racket v6.0的预发布版本中尝试相同的程序?(此处:)如果预发行版中也存在缺陷,请提交缺陷报告。
Welcome to Racket v5.3.2.
> (require racket/tcp)
> (define (tcp-open? host port)
  (with-handlers ((exn:fail:network? (lambda (e) #f)))
    (define-values (inp outp) (tcp-connect host port))
    (close-input-port inp)
    (close-output-port outp)
    #t))
> (tcp-open? "www.racket-lang.org" 80)
R: undefined;
 cannot reference undefined identifier
  context...:
   C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7