2013-07-29 10 views
1

我已經在busybox(內核3.0.35 ARM)上運行C++應用程序,它偵聽多播數據包。一切似乎工作正常,直到我發現,如果我拔掉網絡電纜啓動應用程序,然後再插入,它將不會收到多播數據包。我無法弄清楚爲什麼。沒有錯誤,所有設置操作(bind,setsockopt,...)成功完成,ip maddr也顯示正確的信息。只有select()不會報告任何傳入數據。如果鏈接不起來,內核會有什麼不同嗎?如果套接字綁定沒有網絡電纜,則未收到多播數據包

有趣的是相同的應用程序也將在不同地址的組播報文,這似乎並沒有被鏈路狀態的影響,它高興地傳輸一次我插上數據線。

任何想法?

感謝, 湯姆

回答

0

想必你問題,當您啓動JOIN。如果電纜未插入,則IGMP JOIN請求無法到達任何地方,因此路由器不知道向您發送多播。

+0

現貨!非常感謝 – Tom

相關問題