python日記(使用TCP實現(xiàn)的對話客戶端和服務(wù)器)
TCP 客戶端
一個使用TCP協(xié)議實現(xiàn)可連續(xù)對話的客戶端示例代碼:
import socket
# 客戶端配置
HOST = 'localhost'
PORT = 12345
# 創(chuàng)建TCP套接字并連接服務(wù)器
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
while True:
# 獲取用戶輸入
message = input("請輸入要發(fā)送的消息:")
# 發(fā)送消息到服務(wù)器
client_socket.sendall(message.encode("utf-8"))
# 接收服務(wù)器傳回的消息
data = client_socket.recv(1024)
print(f"收到來自服務(wù)器的消息:{data.decode('utf-8')}")
# 關(guān)閉套接字
client_socket.close()
在這個示例中,我們首先創(chuàng)建了一個TCP套接字,并使用connect()函數(shù)連接到指定的服務(wù)器地址和端口。然后,我們通過用戶輸入不斷發(fā)送消息到服務(wù)器,并等待服務(wù)器響應并顯示其結(jié)果。請注意,由于TCP是面向連接的協(xié)議,因此我們可以通過該連接保證消息的可靠性和順序性。
最后,我們通過close()函數(shù)關(guān)閉套接字。
需要注意的是,當我們使用TCP協(xié)議時,需要確保服務(wù)端也使用TCP協(xié)議進行相應的通信。
TCP 服務(wù)端
以下是一個使用TCP協(xié)議實現(xiàn)可連續(xù)對話的服務(wù)端示例代碼:
import socket
# 服務(wù)器配置
HOST = 'localhost'
PORT = 12345
# 創(chuàng)建TCP套接字并綁定到地址和端口
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
# 監(jiān)聽連接
server_socket.listen()
# 接受連接并與客戶端建立通信
client_socket, client_address = server_socket.accept()
print(f"與客戶端 {client_address} 建立連接。")
while True:
# 接收客戶端傳來的消息
data = client_socket.recv(1024)
print(f"來自{client_address}的消息:{data.decode('utf-8')}")
if not data: # 如果客戶端關(guān)閉了連接,則退出循環(huán)
break
# 獲取用戶輸入
message = input("請輸入要發(fā)送的消息:")
# 發(fā)送消息到客戶端
client_socket.sendall(message.encode("uft-8"))
# 關(guān)閉套接字
client_socket.close()
server_socket.close()
在這個示例中,我們首先創(chuàng)建了一個TCP套接字,并將其綁定到指定的地址和端口。然后,我們通過listen()函數(shù)開始監(jiān)聽客戶端連接請求。
當有客戶端連接時,我們調(diào)用accept()函數(shù)接受連接并返回客戶端套接字和地址。然后,我們通過循環(huán)不斷接收和發(fā)送數(shù)據(jù),從而實現(xiàn)了可連續(xù)對話的功能。
請注意,由于TCP是面向連接的協(xié)議,因此我們可以通過該連接保證消息的可靠性和順序性。最后,我們通過close()函數(shù)關(guān)閉套接字。
需要注意的是,在實際開發(fā)中,我們可能需要為每個連接創(chuàng)建一個新的線程或進程,以便能夠同時處理多個客戶端連接。
以上就是python日記(使用TCP實現(xiàn)的對話客戶端和服務(wù)器)的詳細內(nèi)容,更多關(guān)于python TCP對話客戶端服務(wù)器的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python如何將.tif格式圖批量轉(zhuǎn)化為.jpg格式圖
這篇文章主要介紹了python如何將.tif格式圖批量轉(zhuǎn)化為.jpg格式圖問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Python查看Tensor尺寸及查看數(shù)據(jù)類型的實現(xiàn)
這篇文章主要介紹了Python查看Tensor尺寸及查看數(shù)據(jù)類型的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
詳解Python和Rust中內(nèi)存管理機制的實現(xiàn)與對比
Python和Rust都采用了垃圾收集(Garbage?Collection)機制來管理內(nèi)存,但它們各自的實現(xiàn)方式有很大的不同,下面就跟隨小編一起來深入了解下二者的區(qū)別吧2024-03-03
python使用matplotlib:subplot繪制多個子圖的示例
python paramiko連接ssh實現(xiàn)命令

