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

相关内容