Я использую netcat в Linux для отправки и получения данных (используя протокол udp) с последовательного порта на другое устройство через сеть. Команда:

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

USB, который я использую, - это преобразователь USB в последовательный порт 485, и я замечаю, что индикатор приемника вообще не мигает, а индикатор передачи мигает.

Я проверил, были ли сообщения отправлены и получены через сеть с помощью tcpdump, и я ясно видел, что он передает данные между моей машиной и машиной устройства! Я сейчас думаю, что это может быть проблема Netcat какие-либо идеи?

1 ответ1

0

Просто выбросить это там ..

Но 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .