2013-11-14 98 views
0

我有一個程序,偵聽多播,我希望它能夠與同一程序的其他實例共享一個端口,以便如果我有3個實例運行同一個主機,他們都可以共享同一個端口。組播偵聽同一個主機和端口C

是否有可能這樣做,它會涉及setsockopt和SO_REUSEADDR?

編輯:我打算爲我的代碼this site,我唯一改變的是在消息中發送的內容。

+1

聽起來類似於這個問題:http://stackoverflow.com/questions/1694144/can-two-applications-listen-to-the-same-port – Santa

+0

@Santa這是比我希望更多的信息穀歌我自己,謝謝! – wolf

回答

1

setsockopt的是我需要的東西,這裏是什麼,我做了一個例子:

在聲明

int yes = 1; 

調用bind()我打電話,然後前setsockopt()

setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); 

這現在允許我在同一臺機器上運行程序的多個實例,監聽同一端口上的多播。

+0

@RemyLebeau Mutlicasts與其他任何東西一樣發送到IP:端口。您將不會收到發送到其他端口的多播。 – EJP