TCP服务器IP客户端连接问题

时间:2012-09-06 12:44:50

标签: c# tcp ip

好的,所以我刚开始使用c#搞乱TCP,我已经成功设置了一个服务器,我可以发送一个'Hello World'消息,无论如何我一直在本地做这个(因为两台笔记本电脑都是连接到同一路由器)我只使用192.168号码连接。但它的整个目的是通过互联网工作,两台计算机的路由器IP地址显然是相同的,如果我键入路由器IP地址它不起作用,如果我键入肯定赢得的192.168号码'通过互联网工作...那么我使用什么IP,或者什么是更好的解决方案?

这是重要的代码行

 var client = ScsClientFactory.CreateClient(new ScsTcpEndPoint("192.168.1.142", 10085));

其中192.168.1.142是启动服务器的笔记本电脑的本地IP

和10085是端口。

3 个答案:

答案 0 :(得分:2)

您必须将路由器配置为将任何到端口10085的传入连接转发到本地IP地址。然后任何人都可以使用您的外部IP地址进行连接。

每个路由器都有自己的配置系统,因此您必须在谷歌搜索“端口转发”和路由器模型。

答案 1 :(得分:1)

这取决于你想要实现的目标。例如,如果您正在制作聊天应用程序。客户端(在路由器后面)可以说它的本地IP是192.168.1.111,路由器IP是80.120.78.100。客户端将连接到服务器。

一旦建立连接,发送回客户端并不重要,因为客户端和服务器之间的连接已经打开,因此服务器只会使用相同的连接。路由器找出了“路由”数据包的位置,通常你不需要知道的东西。

但是,如果您的服务器是寻找客户端的服务器,则会有所不同。

答案 2 :(得分:0)

我会尝试解释一下网络,但你必须搜索它

基本上,了解 IP掩码,例如192.168.1.0作为一个网络。路由器的作用是连接不同的网络,这就是路由器通常有2个端口,WAN(宽)和LAN(本地)的原因。

通过这个概念,您可以将 internet 视为一个由各种ISP连接构成的大型网络。每个ISP都有一个到其网络的路由器,另一个为您提供互联网连接。最后,你家里有一台路由器。因此,从中可以了解到有3个网络连接:您的家,您的ISP和互联网。

为了能够连接到我家的电脑,我必须从互联网上购买这台电脑,我必须发布它。我通过在路由器上设置 NAT (网络区域转换)来完成此操作。这个NAT说“任何来自互联网的12345端口,转发到端口80的192.168.1.10(我的服务器)”。

这是一个非常简单的解释,好吗?


现在,让我们退一步吧。如果您的网络上有另一台计算机,您可以测试您的程序是否使用更简单的方法。

  1. 将两台计算机连接到 LAN ,这样他们就会获得类似的IP地址。我们假装他们是192.168.1.10192.168.1.20
  2. 10运行服务器并禁用所有类型的防火墙(Windows和第三方)
  3. 20运行客户端并尝试连接到服务器