gpt4 book ai didi

linux - 如何修改netcat的输入流?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:16 24 4
gpt4 key购买 nike

我正在为 redhat linux 机器上的串行设备创建一个 TCP/IP 接口(interface)。 bash 脚本中的 netcat 用于轻松完成此操作。

nc -l $PORT < $TTYDEVICE > $TTYDEVICE

问题是串行设备在其响应中使用回车符 ('\r') 作为行尾。我想将其转换为 ("\r\n"),以便远程登录的 Windows 机器可以毫无问题地查看响应。我试图弄清楚如何使用简单的 bash 解决方案来解决这个问题。我也可以访问 stty 来配置串行设备,但在输入端没有“\r”到“\r\n”的转换(据我所知)。

我确实尝试在 netcat 的输入端使用 tr,但它没有用。

#cat $TTYDEVICE | tr '\r' '\r\n' | nc -l $PORT > $TTYDEVICE

有什么想法吗?

最佳答案

你的问题是连接到 $PORT 的客户端可能不知道它正在与另一端的 tty 一起工作,所以你会遇到特定于 tty 的“功能”的问题,例如 ^C/^D/等。和 CRLF。

这就是为什么

socat tcp-listen:1234 - | hexdump -C
telnet localhost 1234
[enter text]

将显示 CRLF,而

ssh -t localhost "hexdump -C"
[enter text]

产生纯 LF。随后,您将例如需要

ssh -t whateverhost "screen $TTYDEVICE"

tl;dr:netcat 不会这样做。

关于linux - 如何修改netcat的输入流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9035189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com