
저는 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