如果曾经购买云服务器,会上传文件到服务器,并且能够连贯到服务器执行命令行,则间接浏览 第3局部(记得提前配置平安组)
1 背景介绍
在日常单片机/安卓开发过程当中,常常有一些小我的项目会用到C/S架构。比方,想要实现两个单片机想要实现近程通信,那么就不得不本人搭建一个服务器来实现转发(或者有其余办法)。这样两个单片机就能够通过一些通信模块(WIFI,GPRS等)来实现互相通信了。当然,咱们能够在调试的过程中,齐全能够利用本人的电脑搭建一个局域网内的通信。然而在理论中咱们可能更加须要非局域网的通信,因而本人搭建一个阿里云(或者其余的)就很棒了。
以下内容均是本人(本科生)的一些了解,比拟适宜首次接触相干常识的人参考。而且本人刚接触这方面的常识,可能理论开发进去的货色比拟简陋,也可能解释不正确,还请急时指出。
2 开发筹备工作
- socket的基本知识,并且曾经在本地实现相干性能。(如未实现,可先看TCP的本地实现办法)
- 软件:FileZilla
- 软件:Xshell
以上软件的安装包我已全副打包,点击下载 - 购买一个云服务器并装置操作系统(以下以阿里云为例)
2.1购买云服务器并装置操作系统(以阿里云为例)
1.如果是学生想要购买的话,比拟便宜,大家能够间接去官网购买。为了不便我放个链接
2.留神:进入这个画面当前,抉择须要留神的两个中央。第一,抉择云服务器ECS,第二,地区那里抉择离本人比拟近的即可。而后依照步骤购买即可。
3.进入控制台。在控制台左侧抉择 云服务器ECS 再抉择,实例,在实例列表中即可看到你的服务器,其中IP地址上面有两个IP地址,公网IP即为你可用本人电脑拜访的IP地址。
2.2 更换零碎
- 上图中服务器左边操作那里点击:更多-更换系统盘(须要先进行服务器运行)
- 找到镜像市场,选一个镜像LNMP环境(CentOS7.x Nginx PHPx.x)而后点击批准即可。
- 弹出的页面中输出本人喜爱的登录明码,在页面右下角点击确定更换,稍等片刻零碎即更新完。
2.3 批改平安组
- 关上控制台,在控制台左侧找到云服务器ESC,而后找到网络和平安-平安组,点击配置规定。
- 点击疾速创立规定,抉择80和443端口,受权对象写0.0.0.0/0
- 确定即可,此时在浏览器中输出公网IP即可拜访。
2.4 Xshell登陆服务器
- 装置Xshell软件
- 找到实例的列表,在右侧操作一栏中抉择更多-重置明码,将服务器的明码更换成你所喜爱的明码。
- 批改完明码后,同样在 操作一栏下抉择 更多-重启
- 关上XSheel,抉择新建,并如图配置。主机号改为本人的公网IP
- 输出用户名root
- 明码为刚刚改过的明码
- 如果是这样,示意连贯胜利。
2.5 FTP治理
- 装置FileZilla,批改传输模式为被动
- 参考2.3平安组的批改,别离凋谢20、21端口、1024-65535端口
- 在浏览器中输出本人的公网地址,左侧抉择FTP治理,依照步骤创立账户。
- 进入FileZilla,下图红色框别离写:Host:本人的公网IP,UserName:刚刚新建的FTP用户名,Password:FTP明码,端口可不填。点击疾速连贯。
- 筹备局部到此结束,接下来是咱们明天的主题,将本人的Server.php挂在下面
3 将写好的程序上传到服务器
- 关上FileZilla,并连贯到本人的服务器。
- 将本人的程序拖到文件夹default上面即可。程序下载地址,文件cloud-server中
如呈现上述画面则阐明曾经实现。
4 在服务器上将程序运行起来
- 关上Xshell,并连贯到本人的云服务器。
- 输出命令行 cd /data/wwwroot/default/socket/
- 此时,曾经到了server.php文件所在目录,如果是间接放到default中,则输出到default即可。
- 输出命令行 nohup php server.php &
- 此时提醒如下。则阐明程序曾经挂在了后盾运行,过程号为5553,敞开Xshell,进行测试即可。
- 咱们看一下过程里有没有,输出命令行ps -x
5 测试运行后果
- 而后,咱们就能够连贯过去进行通信啦。测试一下,关上电脑CMD,而后运行一下客户端程序,程序外面把连贯的IP地址改为本人的"公网地址",端口号改为"8080"(以server.php中端口号为准)。
- 运行后果如下,运行client.php。 下载链接(colud-server)
- 咱们换一种测试形式,比拟罕用的网络调试工具:网络调试助手。关上当前依照如下设置:1. TCP Client、2. 公网IP、3. 8080(以server.php为准)
- 发送数据:helloword
- 后果如下
到这里,咱们曾经将程序挂在了下面,如果想要什么非凡性能只须要批改server.php并从新上传并运行即可。能够通过kill xxx(过程号)来敞开过程,而后再从新运行。
以上内容是我第一次尝试,可能会有很多问题,然而至多实现了我想要的性能,尽管比拟简陋,然而我能够在平时利用他实现一些简略的“玩具”。
如果大家有任何疑难,请留言(已开明邮箱揭示,会及时回复)。