搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版) 您所在的位置:网站首页 boa服务器实现终端 搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版)

搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版)

2024-07-14 15:46| 来源: 网络整理| 查看: 265

文章目录 0 引言1. 注册账号、免费申请阿里云服务器2. 配置服务器环境3. 远程连接服务器4. 给服务器传输文件5. 可能出现的问题

0 引言

最近在做一个项目,需要用到一个客户端(电脑)监测巡检设备(无人船)的数据,考虑用到巡检设备搭载4G通讯模块,将数据上传到服务器,然后服务器再传给电脑客户端,用上位机监测数据变化并保存接收数据成日志,同时也可以开发APP,在手机端实时监测数据。

本文主要是针对服务端和客户端之间数据传输的探索过程,由于本人之前没有接触过网络通信,如果错漏之处,请大家批评指正!谢谢!

本文PDF版及代码部分见:https://download.csdn.net/download/qq_41821678/13986226 已经下载的人,可以联系我获取最新资料,邮箱:[email protected]

1. 注册账号、免费申请阿里云服务器

申请网址:https://free.aliyun.com/?spm=5176.19720258.J_2937333540.11.e9392c4a6d5rqN&scm=20140722.3079.7.2925

自己注册一个阿里云账号,登陆。

免费申请一个云服务器,试用期7天,如下红色方框内。选择对应的操作系统,我选择Linux系统18.04。 在这里插入图片描述 注册完之后,需要登陆服务器。选择右上角的“控制台”——>“服务与产品”——>“云服务器ECS” 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2. 配置服务器环境

点击左侧的“实例”,选择服务器地址,勾选实例,“重置实例密码”【非常重要,以后进入服务器系统,就需要这个账号,密码】

账号:默认是root

密码:自己设置的密码 在这里插入图片描述 重置密码之后会重启服务器。

然后设置”安全组“,在左侧“网络与安全”下能找到。然后勾选实例,点击“配置规则”。 在这里插入图片描述 然后添加访问规则。除了默认的,还可以添加一些其他的,用到的端口。

这里面22/tcp就是我们用ssh远程连接要用到的端口。 在这里插入图片描述

3. 远程连接服务器

这里列举三种远程连接方式。

Workbench远程连接VNC远程连接PuTTY远程连接

(1)Workbench远程连接 在这里插入图片描述 在这里插入图片描述

注意:用户名默认是root;密码就是之前重置的密码。(如果忘记,自己可以再重新设置)

Workbench远程连接最终界面如下: 在这里插入图片描述 (2)VNC远程连接

点击远程连接,选择”VNC远程连接“,然后立即登录。

注意这里面的密码是VNC密码,不是之前设置的用户密码。如果忘记VNC密码,也可以重置密码。 在这里插入图片描述 VNC成功远程服务器界面如下图: 在这里插入图片描述 (3)PuTTY远程连接

PuTTY下载

链接:https://pan.baidu.com/s/1hVCdrREJFy0qWbFycHZbug 提取码:yst7

首先,复制服务器的公网IP。 在这里插入图片描述 然后打开PuTTY软件,输入刚刚复制的IP。 在这里插入图片描述 输入用户名和密码,即可远程连接服务器。

用户名:默认root

密码:自己设置的,如果忘记,可以重置实例密码。 在这里插入图片描述

4. 给服务器传输文件

下载FileZilla软件下载 链接:https://pan.baidu.com/s/1_Oq5x9ubOc3FEbwpqf5Cfg 提取码:u5dq

复制服务器的公网IP。

主机:sftp://你的公网IP 用户名:默认root 密码:自己设置的密码 端口:默认是22,可以不填

然后点击“快速连接”即可给服务器传输文件。 在这里插入图片描述

5. 可能出现的问题

(1)远程连接不上,PuTTY和FileZilla软件都连接不上。 错误: FATAL ERROR: Network error: Connection refused 错误: 无法连接到服务器 状态: 正在等待重试... 报错 Network error:connection timed out

原因之一就是服务器防火墙被打开了,然后SSH没有被允许,所以一直连接不上。

解决方法: 首先在服务器(用VNC远程连接方式,进入服务器),在终端窗口输入

sudo ufw status # 查看防火墙状态 sudo ufw allow ssh # 打开SSH

常用的命令:

sudo ufw enable/disable #打开/关闭防火墙 sudo ufw allow/deny [service] #开启/禁用端口号 ###非常重要

(2)客户端运行程序,连接不上服务器 报错 s.connect((host, port)) TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

这个可能就是端口没有被允许,所以要使能一下。 我们可以先查看防火墙状态,看看是不是有自己设置的端口。如果没有,就需要开启。

sudo ufw status # 查看防火墙状态 sudo ufw allow/deny 8088 #开启/禁用端口号 sudo ufw allow/deny 8088/tcp #开启/禁用端口号

另外在防火墙(安全组)配置此端口,见第2节,配置服务器环境。

如果端口号也设置了,客户端还是连接不上服务器,可能是服务器IP没有设置对。

配置服务器IP操作步骤:

远程登陆,进入服务器系统;查看服务器内网IPvim /etc/hostsvim /etc/hostname 在这里插入图片描述在这里插入图片描述

注意服务器/etc/hosts中是内网IP,客户端是外网IP。

(3)运行程序时,有时候会遇到地址已经被使用报错。

报错 OSError: [Errno 98] Address already in use

OSError: [Errno 98] Address already in use 错误是指端口被占用,未释放或者程序没有正常结束

解决方法:

1.更换端口。

2.使用终端命令杀死进程。

lsof -i:端口号 #例如lsof -i:8088 kill -9 pid #pid是指进程的ID号( 端口号),kill -9 用来强制杀死进程 ps -fA | grep python #查看在运行中的端口程序

最终效果图: 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有