
Estoy usando netcat en Linux para enviar y recibir datos (usando el protocolo udp) desde un puerto serie a otro dispositivo a través de la red. El comando es:
nc -u 192.168.10.12 < /dev/ttyUSB0 > /dev/ttyUSB0
El USB que estoy usando es un convertidor de USB a serie 485 y noto que la luz del receptor no parpadea en absoluto mientras la luz de transmisión parpadea.
Verifiqué si los mensajes se enviaron y recibieron a través de la red usando tcpdump y pude ver claramente que se están transfiriendo los datos entre mi máquina y la máquina del dispositivo. Ahora estoy pensando que podría ser un problema de netcat, ¿alguna idea?
Respuesta1
Simplemente tirando esto por ahí...
Pero control-d puede señalar el final del archivo, y quizás sus flujos de entrada incluyan este carácter. Eso cerraría ese flujo de entrada, mientras que el otro podría seguir funcionando.
Si bien no sé qué pasó en tu situación particular, sé que puedes probar esto mediante nc en la línea de comando:
#create a server
nc -v -v -l -p 9000 #yes, I was testing xdebug...
-------- in a different terminal:
#create a client
nc localhost 9000
Escribe algo en ambos. Presiona Ctrl-D en uno. Ahora lo que escribas en esa terminal no aparecerá, pero lo que escribas en la otra terminal seguirá apareciendo.
Me tomó por sorpresa. Pensé que tenía algún tipo de problema de búfer o que era semidúplex. Encontré tu pregunta antes de encontrar la respuesta.
Ah, y para asegurarnos de que no se comporte de esta manera:
stty eof undef