nc -l의 기능을 이해하는 방법

nc -l의 기능을 이해하는 방법

설명서를 읽었 는데 이것이 의미하는 nc바가 나와 있습니다.nc -l

nc원격 호스트에 대한 연결을 시작하는 대신 들어오는 연결을 수신하도록 지정하는 데 사용됩니다 . 이 옵션을 , 또는 옵션과 함께 -p사용 -s하면 오류가 발생합니다 -z. 또한 이 옵션으로 지정된 시간 초과는 -w무시됩니다.

내가 이해하는 한, 작업은 nc -l서버처럼 보입니다. 예를 들어, 동일한 서버에서 터미널은 nc -l 9000포트 9000에서 수신 대기합니다. 다른 터미널이 nc localhost 9000클라이언트가 됩니다. 이렇게 하면 두 번째 터미널에서 첫 번째 터미널로 메시지를 보낼 수 있습니다.

하지만 오늘은 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.

이제 그들은 연결되었습니다. 단어를 입력하면 ncFlink 응용 프로그램이 응답합니다(출력 파일에 기록).

이를 사용하여 애플리케이션에 데이터를 전송한다는 사실은 약간 뒤떨어져 보일 수 있지만 Flink가 이러한 방식으로 통신하는 것을 nc -l막을 수는 없습니다 .nc

답변3

nc -l <port> 물론 a를 열고 <port>연결을 수신합니다.

아래 단계에 따라 프로세스를 확인할 수 있습니다.

1 단계:터미널을 열고 다음을 수행하여 들어보세요.nc -l 32000

2 단계:다른 터미널을 열고 열려 있는 포트에 연결하세요.telnet localhost 32000

2a단계:두 터미널 중 하나에 문자열을 입력하면 다른 터미널의 리스너로 전송됩니다.


또한 netstat를 실행하면 nc -l 32000연결 상태가 리스너로 표시됩니다.

netstat -atn | grep 32000 tcp4 0 0 *.32000 *.* LISTEN

관련 정보