此代码测试端口连接 . 为什么这在DrRacket中有效但在 Racket from the console 或 executable (Racket - > Create Executable ......)中无效?
#lang racket
(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))
在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