Python的網絡套接字模塊(socket)是Python中實現網絡編程的基礎模塊之一。通過socket模塊,程序員可以輕松地創建網絡應用程序并進行網絡通信。
使用socket模塊,可以很方便地建立網絡連接,實現數據傳輸。以下是Python中使用socket實現TCP客戶端的示例代碼:
import socket SERVER_ADDRESS = ('localhost', 8888) client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(SERVER_ADDRESS) client_socket.send('Hello, world!'.encode()) data = client_socket.recv(1024) print(data.decode()) client_socket.close()
在上面的代碼中,首先定義了服務器地址和端口號。然后使用socket.socket函數創建一個套接字對象。該函數的第一個參數指定了地址族(如AF_INET表示IPV4地址族),第二個參數指定了套接字類型(如SOCK_STREAM表示TCP套接字)。接著調用connect函數連接服務器。調用send函數向服務器發送數據。最后調用recv函數等待服務器的響應。
使用socket模塊,同樣可以很方便地實現TCP服務器。以下是Python中使用socket實現TCP服務器的示例代碼:
import socket SERVER_ADDRESS = ('localhost', 8888) server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(SERVER_ADDRESS) server_socket.listen(1) while True: client_socket, client_address = server_socket.accept() data = client_socket.recv(1024) client_socket.send(data.upper()) client_socket.close()
在上面的代碼中,首先定義了服務器地址和端口號。然后使用socket.socket函數創建一個套接字對象。該函數的第一個參數指定了地址族(如AF_INET表示IPV4地址族),第二個參數指定了套接字類型(如SOCK_STREAM表示TCP套接字)。接著調用bind函數綁定服務器端口號。調用listen函數開啟監聽。while循環中調用accept函數接收客戶端連接。調用recv函數等待客戶端發送數據。然后調用send函數將數據轉換成大寫字母,并發送回客戶端。最后調用close函數關閉連接。