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'))#向服務端發送消息

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM