
我在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