搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版)
文章目录
- 0 引言
- 1. 注册账号、免费申请阿里云服务器
- 2. 配置服务器环境
- 3. 远程连接服务器
- 4. 给服务器传输文件
- 5. 可能出现的问题
0 引言
最近在做一个项目,需要用到一个客户端(电脑)监测巡检设备(无人船)的数据,考虑用到巡检设备搭载4G通讯模块,将数据上传到服务器,然后服务器再传给电脑客户端,用上位机监测数据变化并保存接收数据成日志,同时也可以开发APP,在手机端实时监测数据。
本文主要是针对服务端和客户端之间数据传输的探索过程,由于本人之前没有接触过网络通信,如果错漏之处,请大家批评指正!谢谢!
本文PDF版及代码部分见:https://download.csdn.net/download/qq_41821678/13986226
已经下载的人,可以联系我获取最新资料,邮箱:zhankun3280@139.com
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操作步骤:
- 远程登陆,进入服务器系统;
- 查看服务器内网IP
vim /etc/hosts
vim /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 #查看在运行中的端口程序
最终效果图:
搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版)相关推荐
- 云服务器如何链接本地打印机_利用FileZilla搭建云服务器FTP服务端和本地客户端...
腾讯云服务器(服务端) 本地计算机(客户端) 1.首先在腾讯云上下载好FileZilla的对应服务端版本 这里附上中文下载地址 下载 - FileZilla中文网www.filezilla.cn 2 ...
- java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 购买一系列的东西 其实就是花钱买块区域,服务器,域名,云解析,花了好多money... 一. ...
- java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 购买一系列的东西 其实就是花钱买块区域,服务器,域名,云解析,花了好多money... 一. ...
- 分布式电商项目二十六:使用阿里云存储的服务端签名后直传(前端联调)
使用阿里云存储的服务端签名后直传(前端联调) 在前端显示上传的界面,可以根据人人fast-vue的结构,在src\components目录下添加upload文件夹,直接添加vue组件即可,总计三个组件 ...
- 搭建阿里云服务器的步骤
搭建阿里云服务器 47.96.182.223 公网 172.16.96.77 私网 cmdsshssh root@ip地址密码 apt update 获得软件仓库中的最新列表apt upgra ...
- (一)Jedis远程访问阿里云服务器Redis服务出错
1,前言 学习Jedis远程连接阿里云服务器Redis服务出错,浏览了一些博客,得以解决,仅此记录,若有不当之处请您指出. 参考–这位博主 2,配置 2.1,编写代码 public class Tes ...
- 从零搭建阿里云服务器(Linux安装MySQL5.7)图文详解
上一篇文章,我们安装了tomcat,并且实现了通过IP地址访问tomcat,但是想要通过域名来访问还需要等待,域名的实名信息进入库管局,然后到阿里云里备案后才能实现.这个后面会出一篇帖子来实现. 目录 ...
- 第一次搭建阿里云服务器
一直就想搭建一个阿里云服务器来玩一下,之前感觉比较难,就没有动手弄.在同学的指导下就搭建了一台阿里云服务器,我是用来展示网页的. 以下就是记录这次搭建服务器的步骤和遇到的问题 第一步 1. 购买阿里云 ...
- 从零搭建阿里云服务器(图文详解)
目录 前言 一.阿里云服务器是什么? 二.申请域名和服务器 1.申请域名 2域名与服务器的绑定 总结 前言 本人第一次接触服务器,借此机会写个帖子帮助后来人学习,少一些迷茫,少浪费一些时间 一.阿里云 ...
最新文章
- Java培训零基础学员必须要知道的知识点
- 前台特效(2)回到顶部
- 关于助动词和过去分词的一点见解
- python中color的用法_python - 如何为热图(使用plt.pcolor创建)中的NaN单元分配特定的颜色或图案,并使其显示在颜色栏中(图colorbar) - 堆栈内存溢出...
- 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误
- 最小生成树 kruskal_使用Kruskal算法求解Java最小生成树问题
- linux系统无root权限lua库安装,liunx系统中安装lua以及torch
- Windows创建自动化任务
- html辅助方法以及常用属性值,ASP.NET MVC 2博客系列之一:强类型HTML辅助方法
- ssm上传文件获取路径_ssm框架实现图片上传显示并保存地址到数据库(示例代码)...
- python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...
- synchornized实现原理
- 数字时钟仿真电路设计
- 倍福PLC控制台达EtherCAT伺服案例分析
- 华为网络安全论述题解析(1)
- mysql 星座_mysql 查询年龄段,星座以及最近7天生日的sql
- 植物大战 二叉树 递归——纯C
- 上海怎样盘活闲置房 区县:多种方式支持
- 投资者选择量化基金的四个指标
- 计算最大曝光时间保证图像不拖影