利用Linux socat快速搭建TCP服务器

编程入门 行业动态 更新时间:2024-10-17 11:27:36

利用Linux socat<a href=https://www.elefans.com/category/jswz/34/1771431.html style=快速搭建TCP服务器"/>

利用Linux socat快速搭建TCP服务器

某些场合,需要在Linux上快速搭建一个TCP的服务器,接收客户端的连接,返回一些数据。

一般用于测试或者负载不大,安全性要求不高的场合,达到快速搭建的目的。

本文以客户端通过服务器的3334端口,获取服务器连接的modem网卡蜂窝信号强度为例,说明使用方法。

第一步:

假设服务器端获取modem网卡的命令及返回值如下:

其中,对我有用的如下字段:

signal quality: 100% (recent)

第二步:

随后在服务器下新建getSignalLevel.sh脚本,赋予a+x权限

#!/bin/sh -while read command;
do##echo got msg:$commandif [[ $command == battery* ]]; thenmsg=`mmcli -m 0 | grep "signal quality:" | awk -F':' '{print $2}' | awk -F'%' '{print $1}'`##echo battery levle:$msglevel=5;if [ $msg>80 ]; thenlevel=4elif [ $msg>60 ]; thenlevel=3elif [ $msg>40 ]; thenlevel=2elif [ $msg>20 ]; thenlevel=1elselevel=0fiecho battery:$levelfi
done

然后在服务器端执行如下命令:

socat -d -d tcp-l:3334,fork,reuseaddr exec:/etc/getSignalLevel.sh &

该shell命令的作用是监听3334端口,把收到的数据转发给getSignalLevel脚本处理;上述shell脚本中循环读取外部输入,如果是指定字符串打头["battery"],就转成0-4的int型singal level,并作为输出返回给socat,socat收到后通过3334端口返回给tcp client;

第三步:

起一个端口调试器,模拟客户端,输入命令,获取结果,运行截图如下:

注意,输入的battery:后面要带换行符,因为shell的read命令是检测回车换行作为字符截止的。

教程结束,enjoy!

更多推荐

利用Linux socat快速搭建TCP服务器

本文发布于:2023-12-03 19:27:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1656951.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:快速   服务器   Linux   socat   TCP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!