服務器端和客戶端的連接狀態(tài),應該是沒有單獨的函數(shù)返回或是接口監(jiān)測的,看網(wǎng)上很多資料說需要監(jiān)測心跳,這確實是一個普遍解決監(jiān)測狀態(tài)的辦法,但是對我的項目卻顯得有些被動,其實對一般的項目包括我的,用try…except就可以滿足,里面設(shè)置標志位,if判斷一下就可以很好的滿足要求。文章來源:http://www.zghlxwxcb.cn/news/detail-639302.html
#客戶端
#導入socket模塊
import socket
def con():
global c
try:
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect(('公網(wǎng)IP', 端口號))
print("連接成功")
except:
print("連接失敗")
while 1:
con()
data = input("input:").encode()
c.sendall(data)#發(fā)送數(shù)據(jù)
result = c.recv(1024).decode()#接受的結(jié)果傳給result
print(result) #輸出接受到的結(jié)果
#服務端
#導入socket模塊
import socket
#創(chuàng)建TCP類型的socket
def con():
global conn,addr
try:
host = ''
port = 端口號 #端口號每連接一次換一個連就ok了!
#建立一個socket對象,AF_INET說明將使用標準的IPv4地址,SOCK_STREAM說明是一個TCP客戶端
sq = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sq.bind((host, port))
sq.listen(5)
conn,addr= sq.accept()#創(chuàng)建socket和客戶端通信;
print("連接客戶端成功")
except:
print("連接客戶端失敗")
while 1:
global conn
con()
conn.sendall("你好啊".encode())
re=conn.recv(1024).decode()
print (re)
客戶端效果圖:
服務器端效果圖:文章來源地址http://www.zghlxwxcb.cn/news/detail-639302.html
到了這里,關(guān)于python socket監(jiān)測服務器和客戶端連接狀態(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!