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

windows - 与windows命名管道通信的程序

我对 Windows 中的命名管道比较陌生。

我需要一个类似于 linux 的socat的 windows 工具来通过命名管道进行通信。Cygwin 的 socat 可以访问命名管道的窗口吗?如果是这样,怎么做?

0 投票
1 回答
7496 浏览

python - 一个带socat的虚拟串口

如何用socat创建一个虚拟端口?

我想测试 pyserial 通过一个端口进行读写

我已经尝试过:

它创建两个虚拟端口 /dev/pts/9 和 /dev/pts/10

当我尝试时:

在另一个控制台中,我尝试阅读:

超时时,pyserial 将 '\n' 读取为 '^J'

0 投票
3 回答
12272 浏览

virtual-serial-port - Socat 虚拟串口无法识别

我正在使用 socat 创建几个虚拟串行端口。一个我使用一个简单的 C 程序(使用 termios)连接,另一个我想使用一个名为 Ardupilot Mega Planner 的程序(用于 RC 东西)连接。但是,Planner 无法识别虚拟端口(在 /dev/pts 下列出),只能识别 tty 设备和 /dev/serial 设备。我需要做一些特殊的安装才能让它工作吗?或者有没有我可以尝试的解决方法?我尝试“链接”现有的串行端口(例如 ttyS0),但如果我尝试任何类似的操作(虚拟端口到真实端口,真实端口到真实端口),我会收到“不适当的 ioctl”错误。有任何想法吗?

编辑:查看程序的源代码(Mission Planner)后,它似乎只“识别”(或添加了)所有 /dev/ttyS* 设备的端口,即 /dev/serial/by-id/*设备、/dev/USB0 和 /dev/ACM0。所以要么我需要编辑源代码,要么找到一种方法来“验证”一个 ttyS* 端口。Mission Planner 似乎仍然不会连接到除 S1 或 S0 之外的任何 ttyS* 设备。有任何想法吗?我有一种感觉,这是因为它们配置不正确,不知何故。

编辑 2:我终于掌握了 ArdupilotMega Planner 源代码并对其进行了更改,使其包含来自 /dev/pts/ 的设备。但是,我仍然遇到同样的问题。Planner 在打开端口时遇到了一些问题。是否有一些设置需要立即检查/更改才能使程序能够连接到它?去研究一下,尝试更彻底的了解串口通信...

0 投票
3 回答
1816 浏览

python - 使用 Python 将 Unix 套接字连接到随机 TCP 套接字,并且可能是 Socat

我想通过管道将 TCP 套接字连接到 Unix 套接字我可以像这样使用 socat 来做到这一点

但是这里的问题是,我不想自己指定端口号我希望操作系统为我选择一个空闲端口,但我仍然可以知道端口。

我写了这个脚本,它不起作用,但可以说明我想要做什么

我得到的错误是:

2012/09/11 15:34:39 socat[26509] E read(0, 0x1e97a90, 8192):传输端点未连接

注意#1:我也接受除 socat 之外的任何其他解决方案
注意#2:此脚本应该通过管道连接一个监听 Unix Socket 的 Web 服务器,以及一个连接到生成的 TCP 端口的 Web 浏览器。

提前致谢

0 投票
3 回答
20404 浏览

linux - 使用 SOCAT 记录在端口上接收到的消息

我有一个开放端口的服务器,每秒接收 50 到 1000 条消息。消息是指发送一行文本。

本质上,我们希望将这些消息记录在一个文件中,该文件将每小时(或 x 分钟)处理一次。

我创建了一个在后台运行的 bash 脚本(见下文),它可以工作,除非我终止 socat 进程(这样我可以将文件进行处理,它可以启动一个新文件),我们会收到一条消息的一部分,加上我确信我们在 socat 宕机的那一瞬间丢失了消息。

有没有办法:

  1. 让 socat 在不终止进程的情况下旋转其输出文件
  2. 或者我们可以在 SOCAT 写入文件的同时清除文件的内容。例如,将前 10000 行剪切到另一个文件中,所以输出文件的大小仍然可以管理?

提前谢谢了

0 投票
2 回答
9023 浏览

macos - Mac 上使用 socat 的 USB 串行端口

我有一个通过 Prolific Serial 到 USB 电缆连接的硬件,我需要使用 socat 向/从这个和 TCP 端口发送/接收流量。到目前为止,它已安装并与 minicom 一起使用:

minicom -D /dev/tty.usbserial -b 9600

Socat 使用以下方式向 TCP 端口单向工作:

socat /dev/tty.usbserial,clocal=1,nonblock=1,cread=1,cs8,ixon=1,ixoff=1 TCP4:localhost:8080

我如何让它以两种方式工作?我经常看到重复的字符或双行,这表明串行设置不正确,对吗?

谢谢!克里斯

编辑:一些示例代码(实际上并不以双向方式工作)。

0 投票
1 回答
1623 浏览

perl - socat 在标准输入上阻塞

我在 AIX 主机 myscript.sh 上有一个 bash 脚本,如下所示:

当我运行时一切都很好:

当我使用测试脚本连接到 socat 侦听器时出现问题:

在 myscript.sh 中,它阻塞就行了:

在测试脚本中,它阻塞就行了:

至此,数据已经被socat监听器接收到了(用tcpdump检查)。

但是,当我在 socat 超时之前Ctrl+c测试脚本时,数据会通过管道(即最终联系 SSL 服务器)。

我究竟做错了什么?

更新:感谢有关 cat 和 EOF 的提示。目前,我已经解决了这样的问题:

很丑,浪费0.2秒,希望能找到更好的解决方案。但它现在完成了这项工作。2>>/dev/null 部分是因为 AIX 抱怨计数器无效(与 timeout 命令有关)。

0 投票
1 回答
2958 浏览

macos - OS X Mountain Lion 上的自制 socat,sctp“不支持协议”

我正在努力开发一个涉及 SCTP 协议的爱好程序,为了掌握基础知识,我尝试使用homebrew安装socat,socat 是一个类似 netcat 的工具,用于测试各种协议。但到目前为止,在 OS X Mountain Lion 上没有任何成功。这是安装和错误日志:

你看,homebrew编译完成,安装socat成功。验证 SCTP 是否已启用

尝试简单的 SCTP 连接

它失败了。在socat主页上它声明了 OS X 支持,但显然 sctp 可能不支持。可能是因为使用 sctp 的人太少了,我用谷歌搜索了这个错误到处都找不到任何有用的东西。

我在 Gentoo/Debian 服务器上尝试了同样的事情,它们都工作得很好,我只是无法让它在 OS X 下工作。我对 OS X 世界还很陌生,请问有什么建议吗?

0 投票
1 回答
1942 浏览

ssl - 如何使用 socat 将传输的数据分叉到脚本中?

我想用socat分析客户端和服务器之间传输的数据。我已经设法使用以下命令将socat设置为中间人:

虽然我可以看到传输的数据,但我想将其发送到脚本以进行处理以供以后分析。

有谁知道解决方案,以便我可以将每个传输的数据包发送到脚本?

0 投票
1 回答
1216 浏览

objective-c - Theos/Logos 调试日志

我在创建越狱调整和调试时经常使用 theos,我一直在使用内置的%log,并通过 mac 终端通过 SSH 连接到 iphone 并watch使用 socat - 输入输出来跟踪所有消息UNIX-CONNECT:/var/run/lockdown/syslog.sock >watch

现在,当使用这种类型的日志记录时,您会获得对系统日志本身所做的每一次更新,这是我通常不需要(不想)看到的大量信息。我真的只是想看看与我正在记录的内容有关的内容。

我的问题:有没有办法调试通过 socat 连接到自定义日志的调整?只有我的更新被记录在哪里?