![タイムアウト後にコマンド (netcat) を終了するポータブルな方法](https://rvso.com/image/112021/%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E5%BE%8C%E3%81%AB%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%20(netcat)%20%E3%82%92%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%96%E3%83%AB%E3%81%AA%E6%96%B9%E6%B3%95.png)
netcat
入力をリッスンするサービスとして/ を使用するソリューションがありますnc
が、サービスはクライアントに入力を返しません。次のようになります。
server$ nc -l 12345
その後:
client$ echo message | nc server 12345
秘訣は、サーバーがクライアントに何も返さない (EOF も含まない) ため、基本的にクライアントがいつ終了したかがわからないため、クライアントがnetcat
終了しないという点です。
簡単な解決策の 1 つは、クライアント-q <secs>
に オプションを使用させることですnetcat
が、 のすべての実装 (FreeBSD や Mac OSX など) にオプションnetcat
が含まれているわけではありません-q
。
ここにいる優秀な人たちから他に何か回避策はありますか?