Python 是一種非常流行的編程語言,廣泛應(yīng)用于各種領(lǐng)域。在網(wǎng)絡(luò)通信方面,Python 也能夠勝任大部分工作,例如接收組播。
# 導(dǎo)入模塊 import socket # 創(chuàng)建套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # 綁定端口和IP sock.bind(('0.0.0.0', 8080)) # 加入組播組 group = socket.inet_aton('224.0.0.1') mreq = group + socket.inet_aton('0.0.0.0') sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) while True: # 接收數(shù)據(jù) data, address = sock.recvfrom(1024) print('Received data from {}: {}'.format(address, data.decode()))
上面的代碼使用 Python 自帶的 socket 模塊實(shí)現(xiàn)了接收組播的功能。
首先,需要?jiǎng)?chuàng)建一個(gè) UDP 套接字,然后設(shè)置套接字選項(xiàng),加入組播組。接著進(jìn)入循環(huán),不斷接收來自組播組的數(shù)據(jù)。
當(dāng)數(shù)據(jù)到達(dá)時(shí),代碼將其解碼,并打印輸出。注意,接收到的數(shù)據(jù)包含數(shù)據(jù)以及發(fā)送方的地址信息。
在實(shí)際應(yīng)用中,我們需要根據(jù)情況修改 IP 地址、端口號(hào)、組播組地址等參數(shù)。如果組播數(shù)據(jù)較大,可以調(diào)整接收緩存的大小。