【问题标题】:How do I specify Server Ip address in my Client program?如何在我的客户端程序中指定服务器 IP 地址?
【发布时间】:2014-05-26 00:38:24
【问题描述】:

我目前正在使用 TCP/IP 套接字,我的客户端控制台程序必须与我的 PC 的服务器连接,如果客户端程序中的目标被指定为本地主机它工作正常,我需要得到什么完成的是通过互联网将客户端与我的服务器连接,我所做的是在http://www.whatismyip.com/上查找我的IP地址并尝试但它不起作用,因为我认为它是一个网络接口IP地址,然后我改变了目标IP客户端程序中的地址专门指向我希望它成为服务器的计算机的地址,但这也不起作用。这是我的代码。

Ip = (IPAddress.Parse("192.168.1.4"));

MyClient.Connect(Ip,6000);
GetStream = MyClient.GetStream();
Console.WriteLine("CONNECTED TO SERVER");
Read = new BinaryReader(GetStream);
Write = new BinaryWriter(GetStream);

【问题讨论】:

    标签: c# sockets tcp ip


    【解决方案1】:

    您应该(至少)注意两件事:

    1. 要从 Internet 访问您的计算机(从公共地址,您通过 whatismyip.com 获得的那个),您需要在路由器上打开端口(6000),并告诉路由器它应该转发传入连接的 IP。您可以指定特定端口或放置一个 DMZ 主机,所有传入连接都将路由到该主机/PC。阅读您的路由器手册,了解它是如何完成的。

    2.你不能从路由器内部(内网)访问你的公共IP,如果你想连接到你的公共IP,你需要在另一个网络中。

    如果您在每次路由器关闭和打开时都有一个动态 IP(默认设置),那么该 IP 很可能会发生变化,您需要通过whatismyip.com 进行调查以了解分配的 IP。您可以连接到dyndns.org 并询问主机名myhost.mydomain.com(.es、.fr 等),然后在路由器中告诉 DDNS(动态 DNS)在每次 IP 更改时更新该主机。然后在您的客户端程序中连接到MyClient.Connect("myhost.mydomain.com", 6000);

    希望我能很好地解释自己,无论如何,如果您有任何问题,请告诉我。

    【讨论】:

    • 非常感谢。这听起来不仅仅是帮助。让我开始配置,我会在之后给你回信
    猜你喜欢
    • 2016-05-11
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多