2017-12-01 9 views
1

私はスクリプトでnetcatのGNU版を使用しようとしていますが、常にはすべて正常であっても終了コード1を返します。ここでは私の場合のステップはステップである: GNU netcatの終了コードは常に1ですか?

  • サーバは常に1
  • を返しNC NCクライアント上

    1. 実行nc -l 127.0.0.1 -p 7000
    2. 実行nc 127.0.0.1 7000
    3. プレスCtrl + Cは、それを検出するのは、私はできますbashスクリプトでソケットのバインドエラーが発生しました。 Arch linuxのGNU netcatです。アドレスが使用中の場合は、ソケットバインドエラーでBSD netcatが失敗することはありません。

    +2

    クライアントの終了は、サーバーに障害が発生するための十分な理由であると思われます。クライアントでctrl + dを使用するとどうなりますか? –

    +0

    GNU netcat上 - 何もありません。 – Lapsio

    答えて

    3

    GNU Netcatのソースコードを見て、私には悪いニュースがあります...

    int c, glob_ret = EXIT_FAILURE; 
    

    変数glob_retEXIT_FAILUREに設定されている(1)及びポートスキャンモードまたはトンネルモードでのみ変化します。変数はリッスンモードでは設定されていないので、プログラムは常に1つのコードで終了します。

    あなたがここにnetcat.cソースファイルを見てみることができます

    https://pastebin.com/fh66BPgg(機能main

    +0

    それは正直に面白いです。そのようなプログラムが存在し、使用されていて、さらにArchcatのnetcatのデフォルトの選択になった... – Lapsio

    関連する問題