问题标签 [socat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1977 浏览

tcp - 使用 socat 将一个 TTY 流中继到多个 TCP/IP 目的地,以及一个“嗅探器”程序

使用嵌入式 Linux 开发板,我需要组合一个小部件来执行以下操作:

  • 通过物理串行端口读取数据包,并将这些数据包中继到多个 IP 地址(最多 20 个;IP 目标从配置文件中读取)。
  • 还可以使用自定义程序“嗅探”那些串行数据包,可能是用c.

作为具有编程背景的人,(对我来说)最明显的解决c方案是从头开始创建一个程序来实现上述目标。然而,因为这是我需要快速整理的东西,而且因为我需要一个借口来了解更多关于现有 Linux 命令行程序和脚本编写(我不太擅长)的信息,所以我想知道是否有很多这可以通过现有的命令行程序和 shell 脚本来实现。然后,我从头开始编写的唯一部分是我的数据包嗅探器(调用它sniffer.c)。

我理解这一点,netcat并且socat可以用于设备和地址之间的中继,并且我已经开始尝试两者。socat我突然想到,我可以通过运行多个实例来将串行数据从 TTY 端口中继到远程 IP 地址,从而避免开发和测试 TCP/IP 软件。每个实例都socat可以处理一个特定的远程 IP 地址。

这听起来是否可行,如果是这样,我如何有效地“多路复用”来自/dev/ttyS0(例如)的流作为多个实例的源socat加上一个实例sniffer.c?一种方法是将读取的数据中继/dev/ttyS0到缓存文件,然后让我的socat实例和sniffer.c所有人都对该文件具有只读访问权限吗?

0 投票
1 回答
1133 浏览

python - 如何使用 bind_unix_sock 做 Tornado HTTPServer?

我有一个简单的服务器。如果我做一个普通的套接字它可以工作,但如果我尝试使用一个 unix 套接字,我认为它不起作用。

这是服务器:

这是我的测试方式:

服务器没有给出任何响应。

知道我做错了什么吗?

0 投票
1 回答
7367 浏览

serial-port - Socat Windows serial port access

I want to root my serial COM10 to LAN --> LAN to COM12

I therefor need the equivalent command for windows version of socat:

What do I have to enter under Windows instead of /dev/ttyS0 if I want to access my COM10?

Sender : socat -d -d -d TCP4:loalhost:23000 /dev/ttyS1

Receiver: socat -d -d -d TCP4-LISTEN:23000 /dev/ttyS2

Thank in advance!

0 投票
2 回答
5360 浏览

linux - 双向套接字到 tcp 通信

我有一个软件 X 监听和写入 TCP 端口。即它创建一个服务器套接字和一个读取和写入 TCP 的客户端。

我有一个串行设备 ttyUSB0,它可以接受提供软件 X 格式的数据并将数据发送回串行。

我想将数据从串行传输到 TCP,反之亦然,这样它对软件 X 和串行 ttyUSB0 看起来是透明的。

我试图使用socat。喜欢,

但它似乎不起作用。看起来好像 TCP 端口上的侦听器阻止绑定。我有

E bind(3, {AF=2 0.0.0.0:7758}, 16): 地址已经在使用

有人可以帮我解决我的问题吗?

0 投票
2 回答
15930 浏览

sockets - 带有虚拟 tty 链接和 fork 的 socat 删除了我的 pty 链接

我需要能够将 tcp 连接多路复用到单个虚拟 tty,以测试通过串行端口通信的软件。我一直在使用以下命令创建一个侦听 tcp 端口的服务器,然后将数据转发到 PTY。

我的问题是当端口 11313 上的 tcp 客户端断开连接时,socat 删除了我到 /dev/ttyV1 的链接,从而终止了与其他所有连接的人的会话。

有没有办法保留这个链接?或者也许在 socat 之外创建一个伪 tty,这样我就不必担心维护它?我已经尝试过 /dev/tty1 和 /dev/ttyS1 并且我没有任何运气。我对这些的命令是:

我的要求:能够在一端连接一个软件到一个串行tty,然后在另一端连接多个tcp客户端。Tcp 客户端消息传递被正确序列化和多路复用,因此消息不会相互重叠。

0 投票
0 回答
2911 浏览

c++ - 在 Linux 上使用 SOCAT 与 USB 进行串行通信

我想澄清一下 socat 对串行通信的作用,因为由于某种原因,我只能在使用 socat 时让与我的 Arduino 的通信正常工作。

这是我用来设置 socat 的命令:

我在 C++ 中使用的代码是:

因此,当我通过 socat 运行此程序时,arduino 会做出应有的反应,但如果我将 open() 行从 /tmp/serial 更改为 /dev/ttyACM0,则 arduino 将不再执行。有人可以向我解释一下 socat 对数据做了什么以使事情正常进行,以及如何更改我的 C 代码来做同样的事情?我不能在我的最终实现中使用 socat,因为它会导致延迟,使我的机器人无法预测。

0 投票
0 回答
669 浏览

c - C语言中的socat和ioctl

在 Debian 7 上,我使用 socat 作为调制解调器:

我试着知道行(语言 C)的 dcd:

ioctl 的返回值为 -1 且 errno=22(无效参数)

我可以使用TIOCMGETsocat 之类的特殊命令吗?

(我尝试在 srv-modem 上使用相同的代码,没关系)

0 投票
1 回答
834 浏览

bash - 通过 socat bash 网络服务器通过 http 发送图像

我正在尝试使用 socat 在 bash 中编写网络服务器。我在处理图片请求时遇到了问题。我正在打开 socat 监听连接,如下所示:

我使用以下内容提供图像,其中 $1 是 docroot,$2 是图像文件名。

由于“包含错误”,该图像无法在 Firefox 中显示。我在控制台得到以下输出。

我见过使用 netcat 的类似脚本,但我无法使用 socat 让它工作。我想继续使用 socat,因为它具有分叉和处理多个连接的能力。任何见解将不胜感激。

0 投票
0 回答
1155 浏览

linux - netcat/socat 作为 http 拦截代理

我听说 socat/netcat 可以用作代理服务器,它能够重定向到另一个代理服务器。

但在我的情况下,我想通过一些 http 标头操作来“欺骗”它。

所以我的目标是使用 netcat/socat 作为 localhost“http CONNECT”代理服务器,它能够读取并重建客户端的 http 请求,然后将其重定向到外部 squid 代理服务器。

在搜索了几个小时后,我找不到任何示例如何实现这一点。

有可能吗?如果是,那么如何?因为我是 netcat/socat 的新手。

谢谢你。

0 投票
3 回答
7090 浏览

qt - 用 Qt 打开 SOCAT 创建的虚拟串口

我正在 MacOS 上开发 Qt5 应用程序。

我想测试我的应用程序串行端口通信。

我想使用socat但我无法打开使用 socat 创建的端口:QSerialPortInfo::availablePorts()仅列出/dev/cu-XXXXXX端口...