如何在客户端程序中指定服务器IP地址?

时间:2014-04-11 18:06:31

标签: c# sockets tcp ip

我目前正在使用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);

1 个答案:

答案 0 :(得分:0)

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

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

2.如果要连接到需要位于其他网络中的公共IP,则无法从路由器(Intranet)的内部访问公共IP。

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

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