Python的網(wǎng)絡(luò)套接字模塊(socket)是Python中實(shí)現(xiàn)網(wǎng)絡(luò)編程的基礎(chǔ)模塊之一。通過socket模塊,程序員可以輕松地創(chuàng)建網(wǎng)絡(luò)應(yīng)用程序并進(jìn)行網(wǎng)絡(luò)通信。
使用socket模塊,可以很方便地建立網(wǎng)絡(luò)連接,實(shí)現(xiàn)數(shù)據(jù)傳輸。以下是Python中使用socket實(shí)現(xiàn)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()
在上面的代碼中,首先定義了服務(wù)器地址和端口號(hào)。然后使用socket.socket函數(shù)創(chuàng)建一個(gè)套接字對(duì)象。該函數(shù)的第一個(gè)參數(shù)指定了地址族(如AF_INET表示IPV4地址族),第二個(gè)參數(shù)指定了套接字類型(如SOCK_STREAM表示TCP套接字)。接著調(diào)用connect函數(shù)連接服務(wù)器。調(diào)用send函數(shù)向服務(wù)器發(fā)送數(shù)據(jù)。最后調(diào)用recv函數(shù)等待服務(wù)器的響應(yīng)。
使用socket模塊,同樣可以很方便地實(shí)現(xiàn)TCP服務(wù)器。以下是Python中使用socket實(shí)現(xiàn)TCP服務(wù)器的示例代碼:
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()
在上面的代碼中,首先定義了服務(wù)器地址和端口號(hào)。然后使用socket.socket函數(shù)創(chuàng)建一個(gè)套接字對(duì)象。該函數(shù)的第一個(gè)參數(shù)指定了地址族(如AF_INET表示IPV4地址族),第二個(gè)參數(shù)指定了套接字類型(如SOCK_STREAM表示TCP套接字)。接著調(diào)用bind函數(shù)綁定服務(wù)器端口號(hào)。調(diào)用listen函數(shù)開啟監(jiān)聽。while循環(huán)中調(diào)用accept函數(shù)接收客戶端連接。調(diào)用recv函數(shù)等待客戶端發(fā)送數(shù)據(jù)。然后調(diào)用send函數(shù)將數(shù)據(jù)轉(zhuǎn)換成大寫字母,并發(fā)送回客戶端。最后調(diào)用close函數(shù)關(guān)閉連接。