在C#中指定用于TCPClient/Socket的传出IP地址

Dav*_*gan 9 c# sockets ip-address tcpclient

我有一个服务器,其中有几个IP地址分配给网络适配器.

在该服务器上是一个客户端应用程序,通过TCPClient连接到另一个服务器应用程序.对于所有传出通信,我的服务器使用默认IP地址,但是对于这一个应用程序,我希望将传出通信发送到另一个本地IP地址.

是否可以在通信时指定另一个本地分配的IP?

我正在尝试使远程服务器应用程序认为它来自另一个IP,因此它将通过防火墙等....

提前致谢

Avi*_* P. 16

您可以使用TcpClient接受本地端点地址的构造函数:

TcpClient c=new TcpClient(new System.Net.IPEndPoint(...));
Run Code Online (Sandbox Code Playgroud)

例如:

TcpClient c=new TcpClient(new IPEndPoint(IPAddress.Parse("192.168.1.1"), 0);
Run Code Online (Sandbox Code Playgroud)

参考:TcpClient构造函数(IPEndPoint)