python利用Socket实现客户端自动重连

您所在的位置:网站首页 最小的thinkpqd python利用Socket实现客户端自动重连

python利用Socket实现客户端自动重连

2023-06-12 11:12| 来源: 网络整理| 查看: 265

        在做项目时,需要将客户端挂起,随时等待连接服务端。服务端则在需要时打开,客户端则需要自动连接服务端。在网上找了好多代码,大部分不仅复杂,而且达不到项目需求。所以,有了这一篇文章。

        先简单写了一个服务端的代码。如下:

import socket ip = '127.0.0.1' port = 6000 # 这是进行定义一个ip协议版本AF_INET(IPv4),定义一个传输TCP协议,SOCK_STREAM sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 定义ip地址与端口号,ip地址就是服务端的ip地址,端口随便定义,但要与客户端脚本一致 ip_port = (ip, port) # 绑定一个端口 sk.bind(ip_port) # 监听一个端口,这里的数字3是一个常量,表示阻塞3个连接,也就是最大等待数为3 sk.listen(3) a, b = sk.accept() # a为负责通讯的Socket while True: message = input() # 输入信息 a.send(message.encode()) if message == "stop": break

        然后是客户端的代码。如下:

import socket while True: # 定义一个ip协议版本AF_INET,为IPv4;同时也定义一个传输协议(TCP)SOCK_STREAM client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.settimeout(100) # 设置超时时间 # 定义IP地址与端口号 ip_port = ('127.0.0.1', 6000) try: # 进行连接服务器 client.connect(ip_port) except ConnectionRefusedError: continue while True: a = client.recv(1024) # 接受服务端的信息,最大数据为1k if a.decode('utf-8') == 'start': print(a.decode('utf-8')) if a.decode('utf-8') == 'stop': print(a.decode('utf-8')) break

        The end~~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3