線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2079
推到 Plurk!
推到 Facebook!

Multicast & bind to A spcific adapter

缺席
level
一般會員


發表:1
回覆:0
積分:0
註冊:2003-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-08 17:19:10 IP:220.135.xxx.xxx 未訂閱
大家好 最近在寫有關 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-18 10:41:49 IP:59.104.xxx.xxx 訂閱
1、請問你有bind嗎?
2、還有你是否有一個client在接收傳送呢?
3、recfrom怎麼寫的呢?
因為你只有部份的code真的看不出來那裡有問題。
系統時間:2024-04-20 0:36:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!