概述
关于网络组播的解释我不在此详述了,想了解的直接百娘就可以了,本人也是新手,研究了几天Python的组播编程后,目前终于成功的解决了自己找的各种麻烦,所以现在总结如下:
python实现socket组播有N种写法,我现在只给出自己认为比较妥当的写法。
数据发送 sender:
import time
import struct
from socket import *
SENDERIP = '192.168.0.116'#本地ip
SENDERPORT = 1501#本地接口
MYPORT = 1234#发送数据到该端口
MYGROUP = '224.1.1.1'#组播组
MYTTL = 255 # 发送数据的TTL值
def sender():
s = socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP)
s.bind((SENDERIP,SENDERPORT))
# Set Time-to-live (optional)
ttl_bin = struct.pack('@i', MYTTL)
s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, ttl_bin)
status = s.setsockopt(IPPROTO_IP,
IP_ADD_MEMBERSHIP,
inet_aton(MYGROUP) + inet_aton(SENDERIP))#加入到组播组
while True:
data = 'cisco'
s.sendto(data + '