我在 vb6 中借助 winsock 创建了一个简单的客户端/服务器程序。它在 LAN 上完美运行,但问题是它在 WAN 上不起作用。所有端口都已经打开,防火墙已经关闭,我有动态 IP,所以我使用No-ip来获取命名 IP 地址。
我想问的另一个问题是,在客户端和服务器上打开端口是否重要?例如-我在端口 50505 上创建了程序,并且在客户端计算机上端口是打开的,但是在服务器上打开 50505 也很重要吗?
这是我的项目。
如果有人能找到问题,请告诉我。我会很感激
好的,首先确保在客户端程序中,Localport 未设置为任何值,因为 Windows 会为其分配一个,但 RemotePort 设置为 50505。在服务器端,RemotePort 设置为空,LocalPort 为设置为 50505。
接下来,您需要确保您的服务器在您的网络上有一个静态 IP。因此,如果您的路由器的 LAN IP 是 192.168.1.1,您需要将您的服务器设置为 192.168.1.50,只要确保它没有被放入范围或 DHCP 服务器(这是为每台计算机提供 IP 的服务器来自路由器的地址)。
接下来,您需要将路由器设置为“端口转发”。默认情况下,您的路由器不知道如何处理互联网发送给它的数据。您必须设置路由器以将任何数据从端口 50505 转发到网络上的服务器。
虽然这个接缝真的很长而且很长,但安装时间不应该超过 5-10 分钟。
祝你好运!
您需要配置服务器后面的路由器,以将该端口上的连接转发到运行服务器的计算机。
否则,客户端将无法连接到服务器。