搜索
bottom↓
回复: 23

30元话费求一个好用TCP端口转发服务器

[复制链接]

出0入0汤圆

发表于 2019-5-9 14:27:57 | 显示全部楼层 |阅读模式
做一个点对点数据采集,太深的网知识不懂,想当然的建一个服务器,开放2个端口,再对两个客户端和数据做转发,不知这样行是否可行,有劳懂的大牛赐教

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-5-9 14:36:14 | 显示全部楼层
你需要的是MQTT

出0入8汤圆

发表于 2019-5-9 14:41:58 | 显示全部楼层
如果不用处理为什么要转发而不直联? 如果要转发为什么不用路由器的转发?

出0入0汤圆

 楼主| 发表于 2019-5-9 14:47:12 | 显示全部楼层
kelp 发表于 2019-5-9 14:36
你需要的是MQTT

无耐知识不够啊

出0入0汤圆

 楼主| 发表于 2019-5-9 14:53:49 | 显示全部楼层
icoyool 发表于 2019-5-9 14:41
如果不用处理为什么要转发而不直联? 如果要转发为什么不用路由器的转发?

两个客户端是异地的,在阿里去里面搞了一个服务器,里装一个网络调助手,在手上的两个客户端都能连上,阿里云上服务器(网络助手)发送数据,但是两客户不能相互发送,
https://blog.csdn.net/wuquan_1230/article/details/79926287
隔壁坛上有一个大神的工具,我下载不了,不知道能不能实现

出0入0汤圆

发表于 2019-5-9 14:54:59 | 显示全部楼层
我在另外一个贴发过的 ~

出0入442汤圆

发表于 2019-5-9 14:56:39 | 显示全部楼层
你需要的是VPN。。可惜嵌入式不要想了,还是老老实实做虚拟VPN协议吧。

出0入0汤圆

 楼主| 发表于 2019-5-9 15:00:25 | 显示全部楼层
st8051 发表于 2019-5-9 14:54
我在另外一个贴发过的 ~

方便给下地址吗,多谢了

出0入0汤圆

发表于 2019-5-9 15:05:47 | 显示全部楼层
本帖最后由 shiva_shiva 于 2019-5-9 22:20 编辑

之前在阿里云上写了一个测试软件,楼主看看是否可满足你的要求。
你可以连上试试。
服务器:47.104.72.18:5600
TCP协议,报文格式:
abxxxxyyyydddddd
ab是固定值
xxxx是源id
yyyy是目标id
dddd是数据

两个设备分别是1111和2222,要互传数据,就要发送:
1111发送:ab11112222hello
2222发送:ab22221111hello
就可以互相收到数据了。你可以找个tcp调试软件试试。

出0入0汤圆

发表于 2019-5-9 15:28:01 | 显示全部楼层
本帖最后由 RAMILE 于 2019-5-9 22:41 编辑

开一个端口就够了,总共就2个连接

阿里云服务器泡个最简单的listen,逻辑上就当个中转邮箱,收到传感器连接就把消息存起来,收到读取连接就把存的消息发出去,干完就断开TCP

用死等的listen,连多线程都不用开

出0入42汤圆

发表于 2019-5-9 15:34:51 | 显示全部楼层
找台linux服务器NC命令走一波. 应该是openbsd 的nc吧

看图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入22汤圆

发表于 2019-5-9 15:38:44 来自手机 | 显示全部楼层
c#写个服务器,收到后,另外端口转发一下即可

出0入0汤圆

发表于 2019-5-9 15:40:27 | 显示全部楼层
tangsizu 发表于 2019-5-9 15:00
方便给下地址吗,多谢了

https://www.amobbs.com/forum.php ... ;page=1#pid10143114

出0入0汤圆

发表于 2019-5-9 16:09:01 | 显示全部楼层
去了解下mqtt对你有好处。服务器转发做起来比较麻烦。

出0入0汤圆

发表于 2019-5-9 16:50:18 | 显示全部楼层
hyghyg1234 发表于 2019-5-9 16:09
去了解下mqtt对你有好处。服务器转发做起来比较麻烦。

移植不了,看着头大。

出0入0汤圆

发表于 2019-5-9 16:55:15 | 显示全部楼层
沉默胜过白金 发表于 2019-5-9 16:50
移植不了,看着头大。

移植到哪,mqtt协议很简单,TCP/IP完成了就几个字节的协议帧。

出1310入193汤圆

发表于 2019-5-9 16:59:36 | 显示全部楼层
嵌入式做这类项目  蛮难

出0入0汤圆

发表于 2019-5-9 17:12:23 | 显示全部楼层
hyghyg1234 发表于 2019-5-9 16:55
移植到哪,mqtt协议很简单,TCP/IP完成了就几个字节的协议帧。

这是就几个字节的事?
MQTT消息的QOS
MQTT支持三种QOS等级:
QoS 0:“最多一次”,消息发布完全依赖底层 TCP/IP 网络。分发的消息可能丢失或重复。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久后还会有第二次发送。
QoS 1:“至少一次”,确保消息可以到达,但消息可能会重复。
QoS 2:“只有一次”,确保消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。
MQTT的消息类型
1 CONNECT – 连接服务端:客户端到服务端的网络连接建立后, 客户端发送给服务端的第一个报文必须是CONNECT报文
2 CONNACK – 确认连接请求:服务端发送CONNACK报文响应从客户端收到的CONNECT报文。 服务端发送给客户端的第一个报文必须是CONNACK。如果客户端在合理的时间内没有收到服务端的CONNACK报文, 客户端应该关闭网络连接。合理的时间取决于应用的类型和通信基础设施。
3 PUBLISH – 发布消息:PUBLISH控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息。
4 PUBACK –发布确认:PUBACK报文是对QoS 1等级的PUBLISH报文的响应。
5 PUBREC – 发布收到( QoS 2, 第一步):PUBREC报文是对QoS等级2的PUBLISH报文的响应。 它是QoS 2等级协议交换的第二个报文。
6 PUBREL – 发布释放( QoS 2, 第二步):PUBREL报文是对PUBREC报文的响应。 它是QoS 2等级协议交换的第三个报文。
7 PUBCOMP – 发布完成( QoS 2, 第三步):PUBCOMP报文是对PUBREL报文的响应。 它是QoS 2等级协议交换的第四个也是最后一个报文。
8 SUBSCRIBE - 订阅主题:客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅。 每个订阅注册客户端关心的一个或多个主题。 为了将应用消息转发给与那些订阅匹配的主题, 服务端发送PUBLISH报文给客户端。 SUBSCRIBE报文也( 为每个订阅) 指定了最大的QoS等级, 服务端根据这个发送应用消息给客户端。
9 SUBACK – 订阅确认:服务端发送SUBACK报文给客户端, 用于确认它已收到并且正在处理SUBSCRIBE报文。
10 UNSUBSCRIBE –取消订阅:客户端发送UNSUBSCRIBE报文给服务端, 用于取消订阅主题。
11 UNSUBACK – 取消订阅确认:服务端发送UNSUBACK报文给客户端用于确认收到UNSUBSCRIBE报文。
12 PINGREQ – 心跳请求:客户端发送PINGREQ报文给服务端的。 用于:1. 在没有任何其它控制报文从客户端发给服务的时, 告知服务端客户端还活着。2. 请求服务端发送 响应确认它还活着。3. 使用网络以确认网络连接没有断开。
13 PINGRESP – 心跳响应:服务端发送PINGRESP报文响应客户端的PINGREQ报文。 表示服务端还活着。
14 DISCONNECT –断开连接:DISCONNECT报文是客户端发给服务端的最后一个控制报文。 表示客户端正常断开连接。

出0入0汤圆

发表于 2019-5-9 17:38:46 | 显示全部楼层
TCP端口转发,两个设备都有公网IP的话 DDNS,  没公网IP环境的话  frp或 nrgok。

不成熟的想法:
1、设备有公网IP的情况下:两个服异地设备所在的路由器里设置下路由器端口映射,然后与对方的 公网IP:端口  通讯就行了。不需要服务器参与。如果设备公网IP不固定的话需要设置DDNS,设备或路由器支持linux/openwrt/windows都能实现。(DDNS)
2、设备没公网IP的情况下:建个 frp或nrgok的服务器,在两个异地设备或其所在的路由器上运行客户端(路由器需要支持openwrt/linux等系统),打开各自的端口映射,然后与你的服务器对应的 IP:端口通讯就行了。(反向穿透)
3、没有公网IP又改不了路由器状态的话就不知道怎么弄了。
不知道与你想要的效果一不一样。

出0入42汤圆

发表于 2019-5-9 17:44:12 | 显示全部楼层
xuboluan 发表于 2019-5-9 17:38
TCP端口转发,两个设备都有公网IP的话 DDNS,  没公网IP环境的话  frp或 nrgok。

不成熟的想法:

lz说的才是常见的做法, 服务器交换数据. 两个插着4G卡的设备要交互数据很痛苦的.

出0入0汤圆

发表于 2019-5-9 17:48:53 | 显示全部楼层
albert_w 发表于 2019-5-9 17:44
lz说的才是常见的做法, 服务器交换数据. 两个插着4G卡的设备要交互数据很痛苦的. ...

单片机+4G的话,的确得服务器转发了。如果能跑个linux就能用反向穿透了,就简单了。

出0入0汤圆

发表于 2019-5-9 20:34:48 | 显示全部楼层
golang proxy github上有

出0入0汤圆

发表于 2019-5-9 20:53:38 | 显示全部楼层
modbus 发表于 2019-5-9 17:12
这是就几个字节的事?
MQTT消息的QOS
MQTT支持三种QOS等级:

不懂你发了这一通,想说明什么。

出0入25汤圆

发表于 2019-5-9 22:30:24 | 显示全部楼层
xuboluan 发表于 2019-5-9 17:38
TCP端口转发,两个设备都有公网IP的话 DDNS,  没公网IP环境的话  frp或 nrgok。

不成熟的想法:

3、没有公网IP又改不了路由器状态的话就不知道怎么弄了。

在路由器后端再加一级路由啊,支持openwrt的板子便宜的很多啊。
几年前折腾过n2n 就是这么搞的:
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 20:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表