2010-01-06 84 views
6

我有一個服務器有幾個IP地址分配給網絡適配器。指定與TCPClient/Socket在C#中使用的傳出IP地址

在該服務器上是一個客戶端應用程序,通過TCPClient連接到另一個服務器應用程序。對於所有傳出的通信,我的服務器默認IP地址正在使用,但是對於這一個應用程序,我希望傳出的通信通過另一個本地IP地址發出。

當通訊指定另一個本地分配的IP時可以嗎?

我試圖使遠程服務器應用程序認爲它從另一個IP是那麼它會通過防火牆等....

在此先感謝

回答

12

您可以使用TcpClient接受構造本地端點地址:

TcpClient c=new TcpClient(new System.Net.IPEndPoint(...)); 

例如:

TcpClient c=new TcpClient(new IPEndPoint(IPAddress.Parse("192.168.1.1"), 0); 

參考:TcpClient Constructor (IPEndPoint)

+0

謝謝你,我錯誤地認爲構造函數是遠程主機的端點。 出於興趣是否有類似的事情爲System.Net.Sockets.Socket類?它有一個LocalEndPoint屬性,但它只是一個getter而不是一個setter。 – DaveHogan 2010-01-06 22:46:25

+0

沒關係 - 我在這裏找到了綁定方法:http://stackoverflow.com/questions/1508804/setting-a-sockets-local-endpoint 很多感謝您的幫助Aviad – DaveHogan 2010-01-06 22:52:14

+0

如果其他IP我想用不是本地IP嗎? – theGD 2014-05-22 03:25:24