Python网络编程改良版客户端

《Python中套接字实现客户端和服务端3-3》中提到,客户端可以通过connect()方法连接服务端,而连接成功的前提是服务端在必须客户端连接之前就要等待连接。

1 当客户端连接时,服务端没有打开

如果客户端连接服务端时,服务端并没有打开,此时客户端程序就会报错。报错信息如图1所示。

图1 连接服务端时程序报错

因为当客户端连接服务端时,服务端没有打开,报错信息中的“ConnectionResusedError”表示“连接被拒绝的错误”的异常类。

2 加入异常处理

可以在客户端中加入对ConnectionResusedError异常的处理代码。

图2 加入异常处理代码

在以上代码中,当客户端连接服务端时,如果服务端没有打开,则会显示“Connection is refused by server.”,如果成功连接了服务端,则会显示“Connection is accepted by server.”。

相关链接1 Python的中异常处理相关知识,请参考

Python中的异常处理4-1-CSDN博客

Python中的异常处理4-2_棉猴的博客-CSDN博客

Python中的异常处理4-3_棉猴的博客-CSDN博客

Python中异常处理4-4-CSDN博客

3 加入while循环

当服务端没有开启时,以上代码虽然没有报错,但是不能再次连接服务器。因此,可以通过while循环多次连接服务端,代码如图3所示。

图3 多次连接服务端代码

其中,变量going是循环的标志,初始值是True,当成功连接了服务端,则将该值设置为False,循环结束;如果没有成功连接,则使用time.sleep()在指定时间间隔后,再次连接服务端,直到成功连接未知。运行效果如图4所示。

图4 代码运行效果

当运行客户端时,如果服务端此时并没有打开,则客户端会再次连接服务端,直到服务端打开,显示连接成功。

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/133877706
今日推荐