Python Socket 客户端实现,支持掉线重连

# 导入socket库
import socket
import threading
import time
import datetime

class SocketClient:

    def __init__(self, ip, port):
        self.IP = ip
        self.PORT = port

    """ socket 建立链接 """
    def connect(self):
        while True:
            server2 = (self.IP, self.PORT)
            global socket_client2
            socket_client2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            try:
                socket_client2.connect(server2)
            except Exception as message:
                print('连接服务器报错%s' % message)
                time.sleep(1)
                continue
            else:
                print('连接服务器成功')
                threading.Thread(target=self._recv).start()
                break

    """ socket发送数据 """
    def _send(self, msg):
        try:
            socket_client2.send(msg.encode("gbk"))
            print('发送给服务器的消息:%s' % msg)
        except Exception as message:
            print('连接服务器报错%s' % message)
            self.connect()

    """ socket接收数据 """
    def _recv(self):
        try:
            while (True):
                res = socket_client2.recv(1024)
                if not res:
                    break
                print(datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%S') + ' 收到服务器的消息:%s' % res)
        except Exception as message:
            print('收到服务器的消息报错%s' % message)
        self.connect();

if __name__ == '__main__':
    client = SocketClient("192.168.2.122", 2024);
    client.connect()

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值