• Python3 Socket与Socket心跳机制简单实现


    server

    import socket
    import datetime
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.bind(('127.0.0.1',9999))
    s.listen(1)
    starttime = None
    endtime = None
    def Wait_connection():
        global starttime
        s.settimeout(None)
        conn,addr=s.accept()
        starttime = datetime.datetime.now()
        print('client addr',addr)
        client_msg=conn.recv(1024)
        print('client msg: %s' %(str(client_msg,'utf-8')))
        keep_alive()
    def keep_alive():
        global endtime
        a = 1
        while a==1:
            try:
                s.settimeout(5)
                print('---------------------------------')
                conn,addr=s.accept()
                print('client addr',addr)
                client_msg=conn.recv(1024)#客户端发送过来的消息
                print('client msg: %s' %(str(client_msg,'utf-8')))
            except:
                a = 2
                endtime = datetime.datetime.now()
        print('连接已断开,本次连接持续 %s 秒'%str((endtime - starttime).seconds))
        Wait_connection()
    if __name__ == '__main__':
        Wait_connection()

    client

    import socket
    import time
    a = 0
    while True:
        time.sleep(4)
        a+=1
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.connect(('127.0.0.1',9999))
        keepclass = "我已连接"+str(a*4)+""
        s.send(bytes(keepclass,'UTF-8'))#向服务端发送消息

  • 相关阅读:
    (五)Redis在项目中应用
    股票收益最大问题
    (四)redigo
    (三)go-sql-driver
    为什么TCP要3次握手?4次挥手?
    分支预测
    事务隔离级别说明
    剑指offer解题思路锦集11-20题
    C++中的二义性问题
    memcached Vs redis
  • 原文地址:https://www.cnblogs.com/sea-stream/p/14181848.html
Copyright © 2020-2023  润新知