Scheme 鸡方案中的错误处理

Scheme 鸡方案中的错误处理,scheme,chicken-scheme,Scheme,Chicken Scheme,我正在做一个基本的端口扫描仪。 当我连接到已关闭的服务器时,我正在尝试打印“已关闭” 连接到打开的端口时,端口和“打开” 现在我正在这样做: (condition-case (tcp-connect (list-ref host 0) port) [(exn) (print "closed")] ['nil (print "open")])) 我的open在应该打印的时候打印不正确(使用netcat进行了测试)。 我如何理解条件情况是它匹配错误。我正在尝试处理无错误的情况,即连

我正在做一个基本的端口扫描仪。 当我连接到已关闭的服务器时,我正在尝试打印“已关闭” 连接到打开的端口时,端口和“打开”

现在我正在这样做:

(condition-case (tcp-connect (list-ref host 0) port)
    [(exn) (print "closed")]
    ['nil (print "open")]))
我的open在应该打印的时候打印不正确(使用netcat进行了测试)。 我如何理解条件情况是它匹配错误。我正在尝试处理无错误的情况,即连接成功


有没有更好的方法?我觉得我想得太多了。

不熟悉鸡肉,我希望你想要这样的东西:

(condition-case 
    (begin (tcp-connect (list-ref host 0) port)
           (print "open"))
    [(exn) (print "closed")])

也就是说,
condition case
的表达式是“快乐路径”(就像Java中的一个try块)。

不熟悉鸡肉,我希望这样的东西是您想要的:

(condition-case 
    (begin (tcp-connect (list-ref host 0) port)
           (print "open"))
    [(exn) (print "closed")])
也就是说,给定给
条件case
的表达式是“快乐路径”(类似于Java中的try块)