
Я использую netcat в Linux для отправки и получения данных (используя протокол udp) с последовательного порта на другое устройство через сеть. Команда:
nc -u 192.168.10.12 < /dev/ttyUSB0 > /dev/ttyUSB0
Я использую USB-конвертер USB-Serial 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