我尝试使用以下代码将udp组播数据包发送到服务器正在运行的特定接口和端口,即br0和端口XXXX(服务器只能在br0接口上运行),这将向我提供其发现数据包。问题是
我没有从服务器得到回复。我认为数据包在到达服务器后会丢失。注意:数据包正在到达服务器,我使用wireshark-packet分析工具对其进行了检查。
在每次迭代中,数据包数据都会附加到udp流中,这可以通过wireshark的“跟随udp流”选项查看。我需要发送单独的udp流。例如,对于每个数据包,“ discovery_data”必须在每次迭代中发送。
以上两个问题需要帮助。
import socket
import time
MCAST_GRP='239.255.255.250'
MCAST_PORT=XXXX
data='discovery_data'
MULTICAST_TTL=32
sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, MULTICAST_TTL)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF,socket.inet_aton("10.224.1.1"))
while True:
dt=sock.sendto(data,(MCAST_GRP,MCAST_PORT))
print(dt)
time.sleep(10)