我画了一张图来帮助解决这个问题!
因此,一家公司发布了一个组播UDP源(公司A),另一家公司连接了它(公司B)。 我有一个到B公司的点对点隧道
我怎样才能让我们的机器join多播组公司A通过公司B的机器发布?
我们可以从公司B的机器上很好地ping通
ping 192.168.255.1
但是,鉴于下面的Python脚本,我们没有得到任何数据。 我的猜测是因为我们不是从192.168.255.2(我们的机器)路由数据包到192.168.255.1(B公司的机器)
任何想法如何以最好的方式做到这一点?
如果是这样,我们怎么能实现呢?
非常感谢!
图:
这里是我使用的套接字代码(Python):
import socket import struct MCAST_GRP = '233.xxx.xxx.xxx' MCAST_PORT = 18000 host = '192.168.255.2' sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((MCAST_GRP, MCAST_PORT)) sock.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(MCAST_GRP) + socket.inet_aton(host)) while True: print sock.recv(1024)
这是configuration:
tunnel Link encap:UNSPEC HWaddr xx-xx-xx-xx-xx-xx-xx-xx-00-00-00-00-00-00-00-00 inet addr:192.168.255.2 PtP:192.168.255.2 Mask:255.255.255.252 inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1476 Metric:1 RX packets:53 errors:0 dropped:0 overruns:0 frame:0 TX packets:167 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6872 (6.8 KB) TX bytes:17522 (17.5 KB)