netcat 명령이 양방향 모드에서 작동하지 않습니다.

netcat 명령이 양방향 모드에서 작동하지 않습니다.

저는 Linux에서 netcat을 사용하여 네트워크를 통해 직렬 포트에서 다른 장치로 데이터(udp 프로토콜 사용)를 보내고 받습니다. 명령은 다음과 같습니다

nc -u 192.168.10.12 < /dev/ttyUSB0 > /dev/ttyUSB0 

제가 사용하고 있는 USB는 USB-직렬 485 변환기이며 전송 표시등이 깜박이는 동안 수신기 표시등이 전혀 깜박이지 않는 것으로 나타났습니다.

tcpdump를 사용하여 네트워크를 통해 메시지가 송수신되는지 확인했는데 내 컴퓨터와 장치 컴퓨터 간에 데이터가 전송되고 있음을 명확하게 확인할 수 있었습니다! 나는 지금 그것이 netcat 문제일지도 모른다고 생각하고 있습니다. 어떤 아이디어가 있습니까?

답변1

이것저것 그냥 던지는데..

그러나 control-d는 파일 끝을 알릴 수 있으며 아마도 입력 스트림에 이 문자가 포함될 수 있습니다. 그러면 해당 입력 스트림이 종료되고 다른 스트림은 계속 작동할 수 있습니다.

귀하의 특정 상황에서 어떤 일이 발생했는지는 모르지만 명령줄에서 nc를 통해 이를 테스트할 수 있다는 것을 알고 있습니다.

#create a server
nc -v -v -l -p 9000      #yes, I was testing xdebug...


-------- in a different terminal:

#create a client
nc localhost 9000

둘 다에 뭔가를 입력하십시오. Ctrl-D를 한번에 누르세요. 이제 해당 터미널에 입력한 내용은 표시되지 않지만 다른 터미널에 입력한 내용은 계속 표시됩니다.

나를 놀라게했다. 버퍼 문제가 있거나 반이중 방식인 줄 알았습니다. 답변을 찾기 전에 질문을 찾았습니다.

아, 그리고 이런 식으로 동작하지 않도록 하려면 다음을 수행하세요.

stty eof undef

관련 정보