python日記(使用TCP實現(xiàn)的對話客戶端和服務器)
TCP 客戶端
一個使用TCP協(xié)議實現(xiàn)可連續(xù)對話的客戶端示例代碼:
import socket # 客戶端配置 HOST = 'localhost' PORT = 12345 # 創(chuàng)建TCP套接字并連接服務器 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect((HOST, PORT)) while True: # 獲取用戶輸入 message = input("請輸入要發(fā)送的消息:") # 發(fā)送消息到服務器 client_socket.sendall(message.encode("utf-8")) # 接收服務器傳回的消息 data = client_socket.recv(1024) print(f"收到來自服務器的消息:{data.decode('utf-8')}") # 關閉套接字 client_socket.close()
在這個示例中,我們首先創(chuàng)建了一個TCP套接字,并使用connect()
函數(shù)連接到指定的服務器地址和端口。然后,我們通過用戶輸入不斷發(fā)送消息到服務器,并等待服務器響應并顯示其結果。請注意,由于TCP是面向連接的協(xié)議,因此我們可以通過該連接保證消息的可靠性和順序性。
最后,我們通過close()
函數(shù)關閉套接字。
需要注意的是,當我們使用TCP協(xié)議時,需要確保服務端也使用TCP協(xié)議進行相應的通信。
TCP 服務端
以下是一個使用TCP協(xié)議實現(xiàn)可連續(xù)對話的服務端示例代碼:
import socket # 服務器配置 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: # 如果客戶端關閉了連接,則退出循環(huán) break # 獲取用戶輸入 message = input("請輸入要發(fā)送的消息:") # 發(fā)送消息到客戶端 client_socket.sendall(message.encode("uft-8")) # 關閉套接字 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ù)關閉套接字。
需要注意的是,在實際開發(fā)中,我們可能需要為每個連接創(chuàng)建一個新的線程或進程,以便能夠同時處理多個客戶端連接。
以上就是python日記(使用TCP實現(xiàn)的對話客戶端和服務器)的詳細內(nèi)容,更多關于python TCP對話客戶端服務器的資料請關注腳本之家其它相關文章!
相關文章
解決python問題 Traceback (most recent call&n
這篇文章主要介紹了解決python問題 Traceback (most recent call last),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12selenium WebDriverWait類等待機制的實現(xiàn)
這篇文章主要介紹了selenium WebDriverWait類等待機制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03python機器學習實現(xiàn)oneR算法(以鳶尾data為例)
本文主要介紹了python機器學習實現(xiàn)oneR算法(以鳶尾data為例),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03