2012-10-25 73 views
2

我在我的Linux機器上配置了2個以太網接口。 可以說接口A和接口B.在定義的以太網接口上發送數據包

我在寫一個tcp客戶端套接字程序,需要在定義的接口上發送數據包。

例如。

./client -intf接口A/B

如果輸入是接口A,那麼客戶端僅具有經由接口A和反之亦然發送數據包。

任何人都可以提供一些關於如何實現這一點的提示。

在此先感謝!

回答

5

您可以使用bind()你叫connect()之前,您的客戶端套接字綁定到特定的IP地址。您可以使用getifaddrs()列出接口及其關聯的IP地址。

+0

你好,感謝您的輸入。你能否提供更多的信息。 – Saravana

+0

@Saravana:調用'getifaddrs()'來查找從接口名稱到IP地址的映射。使用要使用的接口的IP地址和端口0創建一個'sockaddr_in' /'sockaddr_in6'結構,並在調用'connect()'之前將其傳遞給套接字上的'bind()'。 – caf

+0

非常感謝你的咖啡。所以在綁定中,我們綁定到IP接口的IP地址。但我們應該在哪裏提供實際需要連接的服務器IP? – Saravana

相關問題