不同局域网之间socket通信

您所在的位置:网站首页 socket网络编程实现 不同局域网之间socket通信

不同局域网之间socket通信

2024-07-11 09:13| 来源: 网络整理| 查看: 265

文章目录 不同局域网之间socket通信前言一、所需的硬件及软件二、步骤1.配置阿里云服务器安全组2.在阿里云服务器下载frp,配置frps端3.在设备2下下载frp,配置frpc端如果你的设备2是Windows系统 4.运行程序 三.总结

不同局域网之间socket通信 前言

两台设备在同网段的局域网里,socket 客户端和socket服务端是可以相互通信的。但两台设备分别处于不同网段的局域网中时,之间就不能通信了。为了解决这个问题,需要一台有公网IP的服务器作为中转,就可以实现不同局域网之间两台设备基于socket通信了。 简单的框架就是这样的: 在这里插入图片描述 设备1将消息或者控制设备2的指令先发送到云服务器,再由云服务器转发给设备2。设备2如果需要反馈消息,同理,先发送到云服务器,再由云服务器转发给设备1。 在我的项目中,设备1是windows系统的笔记本,设备2是linux系统的树莓派。如果你的两台设备都是Windows系统,或者两台设备都是Linux系统,也没有问题。

一、所需的硬件及软件

1.编写好的可以在同网段局域网下通信的socket client端和socket server端程序。 2.一台有公网IP的云服务器,要记住你的公网IP。我使用的是阿里云的服务器Linux Ubuntu 16.04 64位。如果是学生的话会有优惠。 3.frp软件包。用来搭建内网穿透服务器。 4.你所需要进行通信的两台设备

二、步骤 1.配置阿里云服务器安全组

在这里插入图片描述 找到配置规则以后,点击配置规则。 在这里插入图片描述 点击手动添加,按图中信息进行配置,保存。

2.在阿里云服务器下载frp,配置frps端

阿里云一般是Linux系统,如果你的是Windows系统,可以参考 3.在设备2中下载frp,配置frpc端 的步骤

#找一个你能记得住的位置新建一个文件夹,wyc是文件名,随便取 mkdir wyc #然后下载frp,下载之前先看注意事项 1. wget https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_amd64.tar.gz #注意事项:提前查清楚你所购买的阿里云服务器是什么系统,什么架构的, #几位的操作系统。查清楚以后再下载相应的frp版本。 #以我的为例,我的是Linux Ubuntu16.04 64位的操作系统。 #所以要选frp_0.34.1_linux_amd64.tar.gz。具体选什么可以参考下图

在这里插入图片描述

# 解压 tar xzvf frp_0.34.1_linux_amd64.tar.gz # 解压完以后会有名为frp_0.34.1_linux_amd64的文件夹,由于经常用到这个文件夹,给它重命名为一个简单的名字frp,方便使用 mv frp_0.34.1_linux_amd64 frp cd frp #查看frps.ini配置文件 cat frps.ini

在这里插入图片描述 可以看到绑定的端口,默认是7000,如果想改的话可以自己改。

#修改端口 vim frps.ini

运行frps,监听7000端口是否有frp客户端连接

#运行frps ./frps -c ./frps.ini

如果看到frps tcp listen on 0.0.0.0:7000;Start frps success代表开启成功。

3.在设备2下下载frp,配置frpc端

设备2一般是指运行socket server端程序的那台设备。设备2是socket通信方的server端,是frp通道的client端,这个要搞清楚。 先介绍linux系统,linux系统下frpc端和frps端的配置类似。

#找位置创建文件夹 mkdir wyc #下载frp,找对应版本。 #一定要注意!!!!在设备2中下载的frp和在云服务器中下载的frp版本要一样。系统可以不一样,但版本要一样。 #比如我云服务器下的是Linux amd64架构的,在树莓派下的是arm 32架构的。只要版本一样就行,都是0.34.1 wget https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_arm.tar.gz # 解压 tar xzvf frp_0.34.1_linux_arm.tar.gz mv frp_0.34.1_linux_arm frp cd frp cat frpc.ini

可以看到frpc.ini中的内容为: 进行相应的配置 在这里插入图片描述

#启动frpc服务 ./frpc -c ./frpc.ini

启动成功之后,在云服务器和设备2的命令窗口上都会看到提示。[ssh] success等字样。

如果你的设备2是Windows系统

frp下载地址:frp下载地址 下载之后解压,找到frpc.ini文件用记事本打开,进行配置。配置过程参考上面的内容。 启动frp服务是通过运行.exe文件进行的。 如果你的云服务器也是Windows系统的,进行类似的操作就可以了。

4.运行程序

至此,设备2和云服务器之间的通道已经打通。只需要先在设备2中运行socket server端程序,再在设备1中运行socket client端程序就可以跨局域网通信了。

三.总结

设备1和设备2不要搞混。 如果有什么问题可以给我留言。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3