繁体   English   中英

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

[英]TCP Server IP Client Connection Issue

好的,所以我刚开始使用c#弄乱TCP,并且我已经成功设置了一个服务器,可以向其发送“ Hello World”消息,无论如何,我一直在本地进行此操作(因为两台笔记本电脑都已连接到同一路由器),我只是使用192.168号码进行连接。 但是它的全部目的是通过互联网工作,并且路由器的IP地址对于两台计算机来说显然是相同的,如果我输入路由器的IP地址不起作用,并且如果我输入的192.168号码肯定不会的话,不能通过Internet工作...那么我要使用什么IP,或者什么是更好的解决方案?

这是重要的代码行

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

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

10085是端口。

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

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

这取决于您想达到的目标。 例如,如果您正在创建聊天应用程序。 客户端(在路由器后面)可以说其本地IP为192.168.1.111,路由器IP为80.120.78.100。 客户端将连接到服务器。

建立连接后,发送回客户端就没有关系,因为客户端和服务器之间的连接已经打开,因此服务器将使用相同的连接。 路由器会找出将数据包“路由”到的位置,通常您不需要了解这些内容。

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

我将尝试解释一些有关网络的信息,但是您必须进行搜索

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

有了这个概念,您就可以将Internet视为由各种ISP连接而成的一个大型网络。 每个ISP都有一个通往其网络的路由器,而另一个则为您提供Internet连接。 最后,您在家中有一台路由器。 因此,从中您可以了解到有3个网络连接在一起:您的家庭,您的ISP和Internet。

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

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


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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM