2017-10-03 13 views
0

私は基本的なポートスキャナを作っています。 閉じた ポートに接続し、開いているポートに接続すると「開く」と印刷すると、「閉じた」と印刷しようとしています。チキンスキームのエラー処理

今、私はこれをやっている:それは(netcatをしてテストしている)必要があるとき

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

私のオープンは、正しく印刷されていません。 condition-caseを理解する方法はエラーと一致します。私はエラーのない場合、つまり接続が成功した場合に対応しようとしています。

もっと良いアプローチがありますか?私はそれを考えていると感じている。私はこのようなものは、あなたが望むものであることを期待する鶏肉に精通していない

答えて

2

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

condition-caseに与えられた式が(Javaではtryブロックのような)「ハッピーパス」で、あります。