Multicast & bind to A spcific adapter |
缺席
|
level
一般會員 發表:1 回覆:0 積分:0 註冊:2003-08-01 發送簡訊給我 |
大家好
最近在寫有關 multicast 的程式,在以下的問題卡了很久,麻煩大家幫我看一下,謝謝 我的電腦上有二張網路卡,而我希望能指定由某一張網路卡來加入 multicast group,以下是我加入 multicast group 的部分 code
struct ip_mreq_source imr; unsigned char ttl = 8, loop = 0; int reuse = 1, bufsize = BUFSIZE; imr.imr_multiaddr.s_addr = inet_addr(mc_info.mc_addr.c_str()); //imr.imr_sourceaddr.s_addr = inet_addr("163.25.148.178"); imr.imr_interface.s_addr = inet_addr(cbActIP->Text.c_str()); /* Join into a multicast group */ setsockopt(*m_sock, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, (char *)&imr, sizeof(imr)); setsockopt(*m_sock, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl)); setsockopt(*m_sock, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)); setsockopt(*m_sock, SOL_SOCKET, SO_SNDBUF, (char *)&bufsize, sizeof(bufsize)); setsockopt(*m_sock, IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof(loop));以上的 code 雖然可以成功加入 multicast group,而用ethereal也確實有收到 multicast 的封包,但是程式後面 recvfrom 的地方確一直沒有反應。不知道我的寫法是否有錯,麻煩請指點一下! 謝謝! ps. 另外,之前曾試過使用 indy 的 multicast 元件,但是指定到特定網路卡的部分有些問題(無論指定到哪張卡,都同樣收得到 multicast 封包),也使用過 indy 的 udpsocket 元件來加入 multicast group,但是也是遇到有收到 multicast 封包,但是沒有觸發接收的 event 發表人 - level 於 2005/08/08 17:20:19 |
JAPTION
一般會員 發表:1 回覆:7 積分:1 註冊:2003-12-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |