Python 作為一門流行的編程語言,其也有很多用途。在計算機(jī)網(wǎng)絡(luò)編程領(lǐng)域,Python 也表現(xiàn)優(yōu)秀。在Python 中使用 socket 模塊可以簡單地實現(xiàn) TCP 和 UDP 的網(wǎng)絡(luò)通訊,還可以監(jiān)聽多個端口。
下面的代碼展示了如何在 Python 中監(jiān)聽多個端口。首先,需要導(dǎo)入 socket 模塊:
import socket
接著,創(chuàng)建一個空的 socket (用于監(jiān)聽):
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
其中,AF_INET
表示 IPv4 地址族,而SOCK_STREAM
表示 TCP。
然后,可以綁定多個端口:
portlist = [8000, 8001, 8002] for port in portlist: serversocket.bind(('localhost', port)) serversocket.listen() print('Listening on port', port)
在這里,端口號被放置在一個列表中,循環(huán)遍歷,每次使用bind()
綁定到一個端口。通過使用循環(huán)和 print 語句,可以打印監(jiān)聽的端口。
接下來,需要使用無限循環(huán)來保持服務(wù)器一直處于監(jiān)聽狀態(tài):
while True: (clientsocket, address) = serversocket.accept() clientsocket.send('Hello!') clientsocket.close()
在這里,accept()
方法會等待連接,然后在連上客戶端時返回一個 socket 對象和客戶端地址。隨后,可以向客戶端發(fā)送數(shù)據(jù),完成后關(guān)閉 socket 連接。
以上就是 Python 監(jiān)聽多端口的示例代碼。如果需要監(jiān)聽更多的端口,只需要調(diào)整 portlist 列表即可。