0

好的,所以我刚刚开始使用 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 是端口。

4

3 回答 3

2

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

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

于 2012-09-06T12:49:35.103 回答
1

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

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

但是,如果您的服务器是寻找客户端的服务器,那就不同了。

于 2012-09-06T12:57:37.997 回答
0

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

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

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

为了让您能够连接到我家的计算机,我必须让这台计算机从互联网上可用,我必须发布它。我通过在路由器上设置NAT(网络区域转换)来做到这一点。此 NAT 表示“任何来自 Internet 的 12345 端口,在 80 端口转发到 192.168.1.10(我的服务器)”。

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


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

  1. 将两台计算机连接到您的LAN,因此它们将获得相似的 IP 地址。192.168.1.10让我们假装他们是192.168.1.20
  2. 运行服务器10并禁用所有类型的防火墙(Windows 和第三方)
  3. 运行客户端20并尝试连接到服务器
于 2012-09-06T13:37:07.680 回答