F
fash
Unregistered / Unconfirmed
GUEST, unregistred user!
现象:局域网测试通过,但无法穿越路由器,netxray听后发现,未为
向224.0.0.1发IGMP包,问题:
1.IGMP包是否可控发送
2关键原因
因时间紧迫,特向各位求援!
请看有何问题
FSocket:=WSASocket(AF_INET,SOCK_DGRAM,IPPROTO_UDP,NIL,0,
WSA_FLAG_OVERLAPPED or WSA_FLAG_MULTIPOINT_C_LEAF or
WSA_FLAG_MULTIPOINT_D_LEAF);
。。。。。。
err:=setsockopt(Fsocket,SOL_SOCKET,SO_REUSEADDR,@reuseAddr,sizeof(reuseaddr));
//是否应为(,IPPROTO_IP,IP_MULTICAST_IF,,)
。。。。。。
len:=sizeof(sockaddrIN);
err:=getsockname(Fsocket,sockAddrIN,len);
。。。。。。
sport:=SockAddrIn.sin_port;
sttl:=strtoint(ttl);
if sttl<>0 then
begin
err:=wsaIoctl(Fsocket,SIO_MULTICAST_SCOPE,@sttl,
sizeof(sttl),nil,0,cbret,nil,nil);
//用netxray听,ttl一直为1,IGMP包未向224.0.0.1发送,只发向了
广播地址,怀疑有问题!!!
。。。。。。。
sockAddrIn.sin_addr.S_addr:=inet_addr(Pchar(addr));
RemoteAddr:=sockAddrIn;
Tempsocket:=WSAJoinLeaf(Fsocket,sockAddrIn,sizeof(sockAddrIn),
nil,nil,nil,nil,JL_BOTH);
向224.0.0.1发IGMP包,问题:
1.IGMP包是否可控发送
2关键原因
因时间紧迫,特向各位求援!
请看有何问题
FSocket:=WSASocket(AF_INET,SOCK_DGRAM,IPPROTO_UDP,NIL,0,
WSA_FLAG_OVERLAPPED or WSA_FLAG_MULTIPOINT_C_LEAF or
WSA_FLAG_MULTIPOINT_D_LEAF);
。。。。。。
err:=setsockopt(Fsocket,SOL_SOCKET,SO_REUSEADDR,@reuseAddr,sizeof(reuseaddr));
//是否应为(,IPPROTO_IP,IP_MULTICAST_IF,,)
。。。。。。
len:=sizeof(sockaddrIN);
err:=getsockname(Fsocket,sockAddrIN,len);
。。。。。。
sport:=SockAddrIn.sin_port;
sttl:=strtoint(ttl);
if sttl<>0 then
begin
err:=wsaIoctl(Fsocket,SIO_MULTICAST_SCOPE,@sttl,
sizeof(sttl),nil,0,cbret,nil,nil);
//用netxray听,ttl一直为1,IGMP包未向224.0.0.1发送,只发向了
广播地址,怀疑有问题!!!
。。。。。。。
sockAddrIn.sin_addr.S_addr:=inet_addr(Pchar(addr));
RemoteAddr:=sockAddrIn;
Tempsocket:=WSAJoinLeaf(Fsocket,sockAddrIn,sizeof(sockAddrIn),
nil,nil,nil,nil,JL_BOTH);