netcat
接続が確立されている間(この場合、ユーザーはクライアントnc
として使用しています) 、ネットワークを介して(を使用して)メッセージを送受信する機能をユーザーに提供する必要があります。問題は、ユーザーが対話を開始する前に回線を送信する必要があることです。私の最初の試みは:
echo 'my first line' | nc server port
このアプローチの問題は、実行が終了すると接続がnc
閉じecho
られるため、シェルが返されるためにユーザーがstdinを介してコマンドを送信できないことです(また、開始に数秒かかるため、サーバーからの応答が受信されません)応答し、nc
接続を閉じると、ユーザーが応答を受信することはありません)。
また、コマンドをグループ化してみました。
{ echo 'my first line'; cat -; } | nc server port
ほぼ必要な方法で動作しますが、サーバーが接続を閉じると、を押し<ENTER>
てシェルを再度取得するまで待機します。サーバーが接続を閉じるときにシェルを元に戻す必要があります(この場合、クライアント(nc
コマンド)は、Ctrl + Cを押さない限り、接続を閉じることはありません)。
名前付きパイプも試しましたが、成功しませんでした。
それを行う方法について何かヒントはありますか?
注:私はopenbsd-netcatを使用しています。