socat移植到arm+linux

news/2024/9/24 8:14:53/

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

下载socat源码

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

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

交叉编译

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端口转发功能,我比较喜欢研究网络端口转发的各种工具,命令如下:

socat TCP-LISTEN:8080,fork,reuseaddr TCP:192.168.1.110:9090

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

将串口映射到tcp端口

./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


http://www.ppmy.cn/news/1449328.html

相关文章

软件工程物联网方向嵌入式系统复习笔记--嵌入式系统硬件平台

2 嵌入式系统硬件平台 2.1 嵌入式系统硬件平台概述 2.1.1 整体构架 台式计算机硬件平台整体构架 嵌入式系统硬件平台整体构架 作业:看门狗和实时时钟是什么? 看门狗(Watchdog) 我的理解: 概念:看门狗实…

贪心算法 Greedy Algorithm

1) 贪心例子 称之为贪心算法或贪婪算法,核心思想是 将寻找最优解的问题分为若干个步骤 每一步骤都采用贪心原则,选取当前最优解 因为没有考虑所有可能,局部最优的堆叠不一定让最终解最优 v2已经不会更新v3因为v3更新过了 贪心算法是一种在…

4月21日,成都Sui Meetup精彩集锦

由 Sui Foundation、开发者教育平台 HackQuest,MoveBit,PoP Planet 共同主办的 Sui 成都开发者茶话会已于 4 月 21 日下午 2:00–6:00 举办,我们诚挚感谢所有对 Sui 生态,Sui Move 语言,和 Web3 开发有兴趣的小伙伴前来…

Dashboard 介绍

Dashboard 介绍 一、K8S Dashboard简介 简单的说,K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态。K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它 二、RABC简介 还是那句话&a…

WPS文字页面横向

要将WPS文字页面设置为横向,可以按照以下步骤操作:12 打开WPS文字文档,点击“页面布局”选项卡。在“页面布局”中找到“纸张方向”选项。选择“横向”,这样整篇文档的页面方向就会变为横向。 如果只需要将文档中的特定页面设置…

vue2/vue3 分别自动暴露 API 接口

思路 遍历当前目录下的所有文件;根据遍历结果循环导出文件名与模块名;将文件名作为前缀,模块名作为实际运用函数或变量;将数据整合,放到新的对象中并导出; vue2 的写法 vue3 的写法 使用 this.loading …

【Redis 开发】多级缓存,本地进程缓存Caffeine

多级缓存 多级缓存本地进程缓存CaffeineCaffeine三种缓存驱逐策略 多级缓存 Redis处理并发的能力是非常强大的,但是tomcat的支持并发的能力跟不上Redis的性能,导致整体性能的下降 Redis缓存失效时,会对数据库产生冲击,之间再无屏…

数据结构的队列(c语言版)

一.队列的概念 1.队列的定义 队列是一种常见的数据结构,它遵循先进先出的原则。类似于现实生活中排队的场景,最先进入队列的元素首先被处理,而最后进入队列的元素则要等到前面的元素都被处理完后才能被处理。 在队列中,元素只能…