【问题标题】:Specify the outgoing IP address to use with TCPClient / Socket in C#在 C# 中指定与 TCPClient / Socket 一起使用的传出 IP 地址
【发布时间】:2011-01-02 05:27:49
【问题描述】:

我的服务器分配了多个 IP 地址给网络适配器。

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

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

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

提前致谢

【问题讨论】:

    标签: c# sockets ip-address tcpclient


    【解决方案1】:

    您可以使用接受本地端点地址的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)

    【讨论】:

    • 谢谢你,我错误地认为构造函数是远程主机的端点。出于兴趣, System.Net.Sockets.Socket 类是否有类似的东西?它有一个 LocalEndPoint 属性,但它只是一个 getter 而不是 setter。
    • 没关系 - 我找到了这里解释的 Bind 方法:stackoverflow.com/questions/1508804/… 非常感谢 Aviad 的帮助
    • 如果我要使用的另一个IP不是本地IP怎么办?
    • 一个通信通道由两个socket组成,每个socket都有一个地址,本题处理的是本端的socket。如果您想连接到远程某个地方,您正在询问远程端。要指定连接的目标,请使用 Connect 方法。
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2010-10-15
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多