我正在使用recvfrom接收來自網絡的多播消息。 系統上有兩個網絡接口,recvfrom只接收來自第一個接口。 當第二個接口功能正常時,recvfrom被無限期阻塞,並在切換到第一個接口後才接收數據包。 SO_REUSEADDR在打開套接字時用於設置選項。刪除這也無濟於事。 任何想法?? 我被卡住了。recvfrom卡在一個接口上
2
A
回答
0
我會爲每個接口創建一個套接字,並顯式綁定到接口,而不是使用INADDR_ANY
。
使用INADDR_ANY
的問題是,一旦收到數據報,套接字可能會隱式綁定到數據報到達的接口上,恕我直言,它必須是這樣的,以便您可以從數據報的接口發送響應抵達...
0
我能夠通過在組播套接字上使用DROP_MEMBERSHIP和ADD_MEMBERSHIP來解決此問題,無論何時更改網絡接口。 我還必須對套接字庫進行更改,最初它用於返回第一個可用的具有多播功能的接口(即使未分配IP)以返回啓用了多播並且也分配了IP地址的接口。
相關問題
- 1. 原始UDP套接字卡住recvfrom
- 2. 在上一次recvfrom()中獲取IP和端口爲const char *
- 3. Python套接字的例子,爲什麼這個程序卡在recvfrom與UDP?
- 4. sendto和recvfrom在同一個程序中?
- 5. recvfrom無限接收問題
- 6. 如何在另一個接口中實現一個接口
- 7. 套接字UDP程序在recvfrom停止
- 8. 啓動時錯誤的端口(recvfrom)
- 9. 在Unix上用C取消UDP recvfrom
- 10. 在原始套接字中使用recvfrom():一般疑問
- 11. Java - 接口,實例化一個接口?
- 12. 添加一個matplotlib輸出選項卡到spyder接口
- 13. pureMVC:接口中每個選項卡的唯一中介
- 14. MantaRay在同一個端口上打開3個TCP連接
- 15. Erlang:在同一個端口上接收多個組播流
- 16. 在一定的時間後停止recvfrom()
- 17. 如何檢查一個接口是否在C#中擴展另一個接口?
- 18. nodejs套接字從一個端口接收數據並在另一個端口上可用
- 19. 如何在一個接口上測試一個擴展方法,該接口使用Rhino Mocks創建的模擬調用該接口中的另一個方法?
- 20. UDP套接字上的recvfrom()返回-1,但WSAGetLastError()返回0
- 21. 在卡夫卡接收器連接器上設置唯一的客戶端ID
- 22. Android:在SD卡上寫一個xml
- 23. 測試兩個客戶端直接連接在同一個IP和端口上
- 24. Spring JPA:在同一查詢接口上使用多個投影
- 25. 你可以在Linq2Sql類上實現一個接口嗎?
- 26. 如何在角度組件上聲明一個接口?
- 27. 清漆在同一接口上偵聽多個IPv6地址
- 28. 給我一個接口java.lang.NoClassDefFoundError
- 29. 如果一個父接口
- 30. 實現一個java接口
您是否希望能夠從兩個接口或僅一個接收?如果只有一個,試着將你的套接字綁定到該接口的地址,而不是默認爲「any」。 – 2010-08-17 13:51:47
嗨, 我將它綁定到INADDR_ANY並期望在任一接口上接收多播,無論哪一個處於活動狀態。 但recevfrom只能在一個接口上工作,並在另一個接口處於活動狀態時卡住。 – Rohith 2010-08-17 15:07:14