因为项目需求,刚买了一个阿里云的服务器,系统是ubuntu16.04的,配置好后,将Python写好的服务器脚本上传到云服务器。运行之后,在本地的客户端却无法连接(确定程序没有问题)。
在网上查找了很多方法,尝试无果。最终多亏实验室师兄的帮助,才解决。
遂,记录问题及解决方法,前车之鉴,请小心入坑!
阿里云服务器默认是不开放所有端口的,刚购买的服务器只开了
22
,
3389
,
ICMP
这几个,那么如果是自己编写的服务器程序,设置的端口(一般是动态端口)往往是没有开的。所以需要我们自己去打开,打开方式:
在云服务器的左边列表中找到
网络与安全
->
安全组
->
配置规则
,
进入
快速创建规则
,仅需要修改自定义端口:
TCP
,
9999
(可以自定义端口号),授权对象:
0.0.0.0/0
(表示允许所有ip对象访问),即可。
-
阿里云端
服务器socket
绑定阿里云的
私网地址
-
要连接阿里云服务器的
客户端的socket
要设置为阿里云的
公网地址
上面两张图,唯一的区别在于:第一张图里面,ip地址前有空格。最后是去掉了这个空格才连接成功的。
唉~
1、
解决socket连接阿里云服务器所遇到的问题
2、
阿里云服务器无法访问80或8080端口的
3、
socket TCP:在阿里云ESC上搭建自己的TCP服务端程序
因为项目需求,刚买了一个阿里云的服务器,系统是ubuntu16.04的,配置好后,将Python写好的服务器脚本上传到云服务器。运行之后,在本地的客户端却无法连接(确定程序没有问题)。在网上查找了很多方法,尝试无果。最终多亏实验室师兄的帮助,才解决。遂,记录问题及解决方法,前车之鉴,请小心入坑!无法连接服务器端可能的原因:(在这之前确保已经能够登录系统,正常运行)1、阿里云相应端口没有开放...
1、在
阿里云服务器
实例创建安全组规则,添加规则。不懂添加规则可以看
阿里云
教程
2、开启防火墙
systemctl start firewalld3、设置打开的
端口
号(永久打开)
firewall-cmd --add-port=8000/tcp --permanent4、更新一下:在设置好
端口
后,需要执行
firewall-cmd --reload5、查看已经打开的
端口
firewal
很奇怪啊,明明设置好了安全组,怎么会
无法
绑定呢?
最后经过一波冲浪,发现这是
阿里云
的锅,它的网卡地址是内网地址,它自己会把内网地址与外网相互转换,所以说你要搞网络编程的话,ip地址得填
服务器
私网ip。
公网ip和私网ip可以在
阿里云
实例列表里查看
总结一下:
用
阿里云
进行
socket
编程一定要注意:
服务器
端ip地址记得写私网ip,
客户端
访问时填公网
1、环境:腾讯云
服务器
、ubuntu16、python3、git
2、在自己电脑(我的win10)用python3写好
socket
服务端代码,上传到自己的GitHub,然后在云
服务器
里git clone 工程。我的是:
git clone https://github.com/LixinSy/appserver.git
3、重点来了,修改IP:
(1)在
socket
客户端
代码中,把host ip改成云
服务器
的公网ip
(2)在
socket
服务端代码中,把ip 改成云
服务器
的内网ip
Web
Socket
是一种用于在Web浏览器和Web
服务器
之间进行实时双向通信的协议。它使用标准HTTP
端口
(80和443)进行通信,因此不会有防火墙
问题
。Web
Socket
客户端
连接
Socket
服务器
是通过
建立
持久的
连接
来启动的。
Web
socket
客户端
可以使用JavaScript来实现,在浏览器中通过Web
Socket
API来创建Web
Socket
连接
对象,然后调用
连接
对象的方法来
连接
Socket
服务器
。一旦
连接
建立
,
客户端
可以发送和接收消息。与传统的web应用程序不同的是,这种通信方式不需要在每个交互中重新
建立
连接
,可以保持持久
连接
,从而提高通信效率。
Socket
服务器
可以是任何支持Web
Socket
通信的
服务器
,例如Node.js、Java、Python等,Web
Socket
客户端
通过Web
Socket
协议对
服务器
进行
连接
。
服务器
收到
连接
请求后会创建一个Web
Socket
对象,与
客户端
建立
连接
,然后
服务器
和
客户端
之间就可以进行双向通信。
在Web
Socket
通信中,
客户端
和
服务器
之间的数据传输是通过通道进行的。数据可以被包含在文本和二进制消息中,并通过Web
Socket
连接
进行发送和接收。这种通信方式可以用于实时数据推送、在线游戏等场景,提高了Web应用程序的交互性和响应速度。