问题标签 [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 投票
3 回答
3716 浏览

mysql - 如何将本地 unix 套接字映射到 inet 套接字?

我很好奇是否可以将 UNIX 套接字映射到 INET 套接字。情况很简单,我想连接到 MySQL 服务器。不幸的是,它禁用了 INET 套接字,因此我只能连接 UNIX 套接字。我正在使用/编写的工具必须连接到 INET 套接字,所以我想看看我是否可以将一个映射到另一个。

进行了大量搜索,但我确实找到了socat,据称它可以满足我的需求。我想知道是否有人对如何实现这一点有任何建议。我一直在使用的命令行(部分成功)是:

现在我可以建立连接并与服务器交谈。不幸的是,任何建立多个连接的尝试都失败了,因为我需要使用 fork 选项,但这个选项似乎使连接不起作用。

我知道我可以用 Perl(我的首选语言)解决这个问题,但我宁愿避免自己编写整个实现。我熟悉 IO::Socket 库,我只是希望任何人都有做这种事情的经验。接受建议/想法。

谢谢。

0 投票
3 回答
2811 浏览

python - 使用 pySerial 和 socat 发送字节时出现问题

我想通过 pySerial 发送一些字节。我用 socat 创建了虚拟串口用于测试目的:

这是python代码:

我得到的输出:

我期望的输出:

我在这里做错了什么?是socat还是python?

编辑:

我刚刚注意到不同 x 值的其他一些奇怪行为。这里的输出:

解决方案:

问题是我在写信的同一个端口上阅读。如果我做对了,socat 将两个端口“连接”为“输入”和“输出”。因此,如果我写入 ./ptyp1,我必须阅读 ./ptyp2。之后,一切都很好。

0 投票
2 回答
9619 浏览

linux - socat:通过 TTY 隧道 IP

是否可以使用socat实用程序在类似 ttyS0 的串行(调制解调器)设备上获得双向 IP 隧道?我尝试使用 TUN 选项,但仍然无法得到结果。

欢迎任何建议:)

更新:

PC1:

PC2:

之后,我看到 tun0 接口在两端都有正确的地址,但我无法从另一个接口 ping 通。取而代之的是,当我发送带有ping -c 1 192.168.1.1远程socat进程退出的数据并且它的 tun0 设备被破坏时。有什么建议么?..

更新2:

当我们尝试仅使用 socat 建立 TCP/IP 串行隧道时,会出现框架问题。socat 的开发者 Gerhard Rieger 对我说:

恐怕你是对的。tun over 数据报套接字工作,并且 - 幸运的是 - 也通过管道。但是在串行线上,数据包边界可能会消失,这在 tun 接口上发送数据时是致命的。

抱歉,我现在无法提供基于 socat 的解决方案。不过,我会尝试在以后的第 2 版中集成一些框架。

0 投票
1 回答
4627 浏览

udp - SOCAT 重定向 UDP 不起作用!

我正在尝试将UDP数据报中的数据传输到外部位置的客户端到本地局域网中的PC。但我的网络是通过 ADSL 调制解调器发送到带有 Slackware 的电脑,这台电脑将包重定向到其他电脑。我正在使用 socat 重定向 UDP:

在 LAN 中连接很好,但外部 IP 不起作用。有人帮忙吗?

0 投票
1 回答
5385 浏览

bash - 让 socat 逐行写入(TCP 或 UNIX)套接字以收集日志

我正在尝试合并来自多个主机的多个日志文件。我正在socat -u EXEC:'follow_log_cmd' UNIX-SENDTO:/tmp/socket为我想要关注的每个日志做一个。

在我正在做的日志收集机器上socat -u UNIX-RECV:/tmp/socket -

我的问题是日志条目有时会重叠,因为 socat 不是一次写一行,而是一次写一个缓冲区。

有没有办法让它一次写一行?

0 投票
3 回答
11124 浏览

c - 如何使用 SOCK_DGRAM 制作双向 unix 域套接字?

我正在尝试编写一个简单的 Unix 数据报服务器/客户端,但遇到了一些问题。我想要的是一个服务器,它在数据报套接字上侦听并向原始发送者发送对收到的每条消息的回复。我决定首先尝试socat用作“服务器”并用 C 编写客户端。我正在运行 socat,如下所示:

据我了解,这应该收听/tmp/test.socket并回复使用相同字符串收到的所有内容?然后我有一个看起来像这样的客户端程序(为清楚起见,删除了错误检查):

它应该发送数据包(有效),接收数据包,然后将其打印出来,但程序似乎无法接收数据包。我在这里做错了什么,还是我对 Unix 套接字有根本的误解?谢谢!

0 投票
0 回答
868 浏览

tcp - Socat:允许重新连接到会话

我可以使用本地 PTY 链接设置 SSH 连接 - 我希望能够向远程端发送一些触发器,然后使用 screen 或 minicom 连接到会话,即:

然后在另一个窗口中(或背​​景socat)

问题是——在回显之后,socat 断开了 EXEC——而不是让它保持打开以便 PTY 连接继续。

有任何想法吗?(我可以用expect或empty-expect来做这件事,但它是前者的一个faf,而缓冲会在会话的交互部分中搞砸后者。)

0 投票
1 回答
3523 浏览

c# - ubuntu linux上的虚拟socat串口和c#

出于测试目的,我正在尝试编写一个连接到使用 socat 创建的虚拟串行端口的简单程序。

我使用以下命令创建串行端口:

得到这个输出:

当我尝试以这种方式连接时:

我得到一个“文件名未知” System.IO.IOException

我是否缺少设置 DataBits、StopBits 或其他参数?如何发现 socat 设置的属性?或者这段代码有什么问题?

0 投票
1 回答
434 浏览

bash - 使用 socat 向多个 IP 地址发送消息

我想在 linux 中编写一个 bash 脚本来获取多个 IP 地址并用于socat侦听端口 5000,如果收到一条消息,则将其发送到所有 IP 地址。

我怎样才能做到这一点??

0 投票
3 回答
3513 浏览

tcp - socat:获取发件人的IP地址

我使用以下代码接收连接:

socat TCP-LISTEN:4000,fork EXEC:"./myscrpit"

我需要在我的脚本中有一个发件人的 IP 地址,但SOCAT_PEERADDR没有设置,有什么问题?