私はbash(1)のマニュアルページでこれを見つけました。このインターフェイスを提供するオペレーティングシステムまたはカーネルモジュールはありますか?私のDebianインストールでこれを試しましたが、デバイスはありません。
ありがとう
/dev/tcp/host/port
If host is a valid hostname or Internet address, and port is an integer port number or service
name, bash attempts to open the corresponding TCP socket.
/dev/udp/host/port
If host is a valid hostname or Internet address, and port is an integer port number or service
name, bash attempts to open the corresponding UDP socket.
解決策/回答:これは機能し、シェルの機能です。テストするには:
$ nc -l -p 5555
echo Hello > /dev/tcp/localhost/5555
$ nc -l -p 5555
Hello
とても素敵です。
ベストアンサー1
Jeffが言ったように、これは関数です。Bashによって実装されました、カーネルではありません。これはシェルスクリプトまたはシェルコマンドラインでのみ機能し、他のプログラムでは開くことはできません/dev/tcp/...
。
これをカーネルモジュールとして実装するには、新しい仮想ファイルシステムを提供する必要があります。
実際に動作する様子を見るには、Bashとnetcatを組み合わせてください。走る
nc -l -p 5555
ターミナルでは
echo Hello > /dev/tcp/localhost/5555
一方、実行中の端末に「Hello」と表示されますnc
。