socat移植到arm+linux

socat是一个用于建立双向数据流传输的工具,它可以在不同的网络层上创建连接,并支持多种协议,如TCP、UDP、SSL等。它非常强大且易于使用,因此广泛用于网络开发和系统管理中,这里记录一下移植到嵌入式系统的过程。

下载socat源码

下载地址: http://www.dest-unreach.org/socat/download/

我选择的这个版本:socat-1.7.3.4.tar.g

交叉编译

sh 复制代码
tar xvzf socat-1.7.3.4.tar.gz
mkdir build
cd build
./socat-1.7.3.4/configure --prefix=/home/fens/workplace/socat/nuc/install CC=arm-none-linux-gcc --host=arm
make 
make install

编译还是比较顺利的,整过过程没有什么错误~

刚开始选择的2.0.0的版本,编译不过,修改了下源码还是不行,后来就换成了这个1.7.3.4的版本,直接就编译过了。

测试运行

这里是用了它的tcp端口转发功能,我比较喜欢研究网络端口转发的各种工具,命令如下:

bash 复制代码
socat TCP-LISTEN:8080,fork,reuseaddr TCP:192.168.1.110:9090

这个命令就是将本地的8080端口的tcp连接转发到192.168.1.110 的9090端口。

将串口映射到tcp端口

bash 复制代码
./socat TCP-LISTEN:6001,fork,reuseaddr FILE:/dev/ttyS1,b9600,cs8,raw,echo=0

6001 监听端口,更改成需要监听的端口

fork 单独启动一个进程去处理

ttyS1 串口设备文件,不同板子可能不一样

b9600 波特率b9600

cs8 8位元组,可以是cs5~cs8,代表一个字节有几位数据

parenb 启用校验(默认为奇校验),如果不写则是无校验,取消校验用parenb=0

parodd 奇校验(需要同时设置parenb),如果不写则是偶校验,取消用parodd=0

cstopb 2个或1.5个停止位,如果不写则是1个停止位,取消用cstopb=0

相关推荐
腾渊信息科技公司5 小时前
工业数据运维痛点根治方案:基于AI Agent的产线自动化台账系统落地
运维·人工智能·自动化·个人开发·ai编程
Dxy12393102165 小时前
Proxy Protocol v2 详解
运维
踏月的造梦星球5 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
潘正翔6 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
weigangwin6 小时前
agent-workspace-linux 不是远程桌面:Linux AI 工作区的隔离边界验收
linux·xvfb·mcp·桌面隔离·权限边界·bubblewrap·agent-workspace
renhongxia16 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
Dovis(誓平步青云)8 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
Java小白笔记8 小时前
Docker 安装配置完全指南:MacOS 、Windows、Linux环境下的安装、配置与验证
linux·macos·docker
csdn_aspnet9 小时前
GitHub Actions自动化运维实战,用CI/CD流水线实现测试、部署、安全扫描一体化
运维·安全·ci/cd·自动化·github
Inhand陈工10 小时前
数据中心UPS无功补偿与智能化监控方案:基于IG502的Modbus RTU转IEC61850实战
运维·人工智能·物联网·信息与通信