在Python中,當我們想製作監聽組播流量的腳本時,我們將套接字的IP_ADD_MEMBERSHIP
選項設置爲由多播組地址和本地接口的地址組成的值它會監聽該組的流量。Python套接字IP_ADD_MEMBERSHIP和INADDR_ANY混淆
在互聯網上的許多例子傳給IP_ADD_MEMBERSHIP
的INADDR_ANY
通配符地址爲本地接口,以及他們的一些指出,這將使插座上所有接口,多播數據包監聽。然而,Linux的IP(7)手冊頁指出,使用INADDR_ANY
時
和FreeBSD的手冊頁「適當的接口是由系統選擇了」說,它會選擇「默認界面」。
所以,無論是一些在線答案是錯誤的,或有一些我在這裏失蹤。我相信INADDR_ANY
作爲IP_ADD_MEMBERSHIP
和INADDR_ANY
中的參數被用作bind()
(由空字符串表示)中的參數時會出現混淆,但我並不確定。有人可以澄清在IP_ADD_MEMBERSHIP
中使用INADDR_ANY
或0.0.0.0
時發生了什麼(即它選擇了默認接口或所有接口),並且在與bind
一起使用時的行爲有所不同嗎?
謝謝,這爲我清理了一些東西 – AndroidX