2012-10-03 58 views
19

在互聯網上搜索幾個小時後,我仍無法找到解決問題的答案。如何將套接字綁定到多個接口

我的任務是創建一個服務器,接受來自可變數量接口的套接字(在配置文件中給出爲eth0, eth1, etc.)。

這樣做最簡單的方法是什麼? 有沒有辦法將一個套接字綁定到多個接口?我還沒有找到辦法做到這一點。
或者,我必須使用INADDR_ANY並以某種方式找出數據包從哪個接口發送?

是否有另一種方法來處理這個問題?

回答

28

你要麼bind(2)一個插座所有接口與INADDR_ANY,或創建多個插座每個綁定到IP地址所需接口。無論如何,在套接字上設置SO_REUSEADDR選項。

+0

你非常有幫助,謝謝! –

+0

您可以*接受*這裏的答案,你知道... :) –

+0

@NikolaiNFetissov當我使用INADDR_ANY時,我能夠接受超過65K的連接限制,或者我必須爲每個IP單獨綁定? – Etherealone

相關問題