マニュアルを読んだところ、これが意味するものが示されていnc
ます。nc -l
nc
リモートホストへの接続を開始するのではなく、着信接続を受信するように指定するために使用されます。このオプションを、またはオプションと一緒に-p
使用する-s
とエラーが発生します-z
。また、このオプションで指定されたタイムアウトは-w
無視されます。
私が理解する限り、タスクはnc -l
サーバーのように見えます。たとえば、同じサーバーでは、端末はnc -l 9000
ポート9000でリッスンします。他の端末がクライアントnc localhost 9000
になります。これにより、2番目の端末から最初の端末にメッセージを送信できます。
しかし、今日はApache Flinkを学んでいます。 FlinkのHello Worldは次のとおりです。https://ci.apache.org/projects/flink/flink-docs-stable/getting-started/tutorials/local_setup.html
$ nc -l 9000
lorem ipsum
ipsum ipsum ipsum
bye
nc -l
ここでの作業は、受信ポートではなくメッセージを送信する作業のようです。
私は今混乱しています。
答え1
着信接続の対象になるため、netcatがデータを送信するのを防ぎません。クライアントが接続を確立すると、クライアントとデータを送受信できます。この場合、データをFlinkクライアントに送信します。
答え2
nc -l 9000
例ではサーバーとして機能します。 Flinkアプリケーションはこのサーバーに接続し、入力を待ちます。このコマンドを実行すると、Flinkが起動しますnc
。
今彼らは接続されています。単語を入力すると、nc
Flinkアプリケーションが応答します(出力ファイルに書き込む)。
これを使用してアプリケーションにデータを送信するという事実は少し遅く見えるかもしれませんが、Flinkがこのように通信するのをnc -l
防ぐことはできません。nc
答え3
nc -l <port>
もちろん、aを開き、<port>
接続を受信します。
以下の手順でプロセスを確認できます。
ステップ1:ターミナルを開き、次のことを試してみてください。nc -l 32000
ステップ2:別の端末を開いて開いているポートに接続します。telnet localhost 32000
ステップ2a:2 つの端末のいずれかに文字列を入力すると、他の端末のリスナーに送信されます。
また、netstatを実行すると、nc -l 32000
接続状態がリスナーとして表示されます。
netstat -atn | grep 32000 tcp4 0 0 *.32000 *.* LISTEN