netcat経由で要求をプログラムに送信し、その要求に対する応答をリッスンする場合、netcatは最初の8192バイトのみを受信し、終了します。ここでnetcatは8192バイト後に接続を終了します
詳細は以下のとおりです。 何かが私のソフトウェアは、8192バイトよりも間違いなく大きいとのnetcatにそれを送り返す応答を生成netcatを、パイプ
echo "something" | netcat -q 10 -i 3 -w 10 localhost myport
を使用して送信されます。私はすべてのバイトが実際に私のプログラムからnetcatに送り返されることを検証したので、問題はありません。 コマンドラインバージョンが使用されている場合:
netcat -q 10 -i 3 -w 10 localhost myport
something
すべてのバイトは、アプリケーションからの送信が受信されています。受信したバイト数を変更するために-q -iと-wフラグにさまざまな組み合わせを試しましたが、パイプコマンドのバージョンでは常に8192です。
どのように修正できますか?
ありがとう、それは本当に役に立ちました。最後のコマンドをテストした後、 '(echo" something "; sleep" $ SLEEP_TIMER ")| nc -q 2 localhost $ myport'と入力します。これにより、送信されるすべてのデータに対してパイプが十分に長く維持されます。ここで、$ SLEEP_TIMERはcaに対して2に設定されています。 80kbのデータ。 – Aeonos