ucspi-tcp パッケージで tcpclient を使用することについて混乱しました。
私は ubuntu を使用しており、次のように ucspi-tcp をインストールします。
apt install ucspi-tcp
それから私はtcpserverを始めました:
tcpserver localhost 10000 tee -a /tmp/test
tcpserver が起動した後、tcpclient を使用してメッセージを送信しようとしました。
tcpclient localhost 10000 echo "hello, JOJO" >&7
tcpclient のマンページによると、出力を fd 7 にリダイレクトする必要があると思いました。
tcpclient は TCP サーバーへの接続を試みます。成功すると、progが実行され、記述子6がネットワークから読み取り、記述子7がネットワークに書き込みます。
しかし、私はこれを得ました:
bash: 7: Bad file descriptor
メッセージを送信するように tcpclient のコマンドを変更するにはどうすればよいですか? お返事ありがとうございます^^
ところで
私がnc
代わりに使用する場合
clay@CVN76:~$ nc localhost 10000
hello, JOJO
hello, JOJO
ファイルテストの内容は期待どおりです。
tcpclient
実行時にファイル記述子を設定します。起動されたシェルでのリダイレクトをやろうとtcpclient
、前に tcpclient
いない仕事のコースも実行されます。このようなシェル リダイレクトが実行される時点では、ファイル記述子 #7 は開かれていません。
パッケージに含まれているfinger@
、date@
、http@
、およびwho@
スクリプトを見てください。それらtcpclient
が a(nother)sh
にチェーンをロードする方法に注目してください。その後、シェルのリダイレクトが行われます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加