不同局域网之间socket通信 |
您所在的位置:网站首页 › socket网络编程实现 › 不同局域网之间socket通信 |
文章目录
不同局域网之间socket通信前言一、所需的硬件及软件二、步骤1.配置阿里云服务器安全组2.在阿里云服务器下载frp,配置frps端3.在设备2下下载frp,配置frpc端如果你的设备2是Windows系统
4.运行程序
三.总结
不同局域网之间socket通信
前言
两台设备在同网段的局域网里,socket 客户端和socket服务端是可以相互通信的。但两台设备分别处于不同网段的局域网中时,之间就不能通信了。为了解决这个问题,需要一台有公网IP的服务器作为中转,就可以实现不同局域网之间两台设备基于socket通信了。 简单的框架就是这样的: 1.编写好的可以在同网段局域网下通信的socket client端和socket server端程序。 2.一台有公网IP的云服务器,要记住你的公网IP。我使用的是阿里云的服务器Linux Ubuntu 16.04 64位。如果是学生的话会有优惠。 3.frp软件包。用来搭建内网穿透服务器。 4.你所需要进行通信的两台设备 二、步骤 1.配置阿里云服务器安全组
阿里云一般是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。具体选什么可以参考下图
运行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中的内容为: 进行相应的配置 启动成功之后,在云服务器和设备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 |