python如何監(jiān)聽(tīng)端口接收的數(shù)據(jù)

小億
210
2023-11-24 20:15:28

在Python中,你可以使用socket模塊來(lái)監(jiān)聽(tīng)端口并接收數(shù)據(jù)。下面是一個(gè)簡(jiǎn)單的例子:

import socket

# 創(chuàng)建socket對(duì)象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 綁定端口
s.bind(('localhost', 8000))

# 監(jiān)聽(tīng)端口
s.listen(5)

while True:
    # 等待客戶端連接
    client, address = s.accept()
    print(f'連接已建立:{address}')

    while True:
        # 接收數(shù)據(jù)
        data = client.recv(1024)
        if not data:
            break

        # 處理接收到的數(shù)據(jù)
        # ...

    # 關(guān)閉客戶端連接
    client.close()

在上面的例子中,我們創(chuàng)建了一個(gè)TCP服務(wù)器來(lái)監(jiān)聽(tīng)本地的8000端口,并等待客戶端的連接。一旦連接建立,我們就可以接收客戶端發(fā)送的數(shù)據(jù)。你可以使用client.recv()方法來(lái)接收數(shù)據(jù),其中1024表示一次接收的最大字節(jié)數(shù)。當(dāng)recv()方法返回空數(shù)據(jù)時(shí),表示客戶端關(guān)閉了連接或者不再發(fā)送數(shù)據(jù),此時(shí)我們可以關(guān)閉客戶端連接client.close()。

需要注意的是,以上代碼只是一個(gè)簡(jiǎn)單的示例,實(shí)際應(yīng)用中可能需要處理更多的異常情況和數(shù)據(jù)的解析等。

0