我在vb6(winsock)中创建的客户端/服务器程序不能在WAN上工作,但完全适用于局域网为什么?

时间:2013-01-14 20:52:59

标签: vb6 winsock

我在vb6的winsock帮助下创建了一个简单的客户端/服务器程序。它完全适用于局域网,但问题是它不适用于广域网。所有端口都已打开,防火墙已经关闭,我有动态IP,因此我使用No-ip获取了命名的IP地址。
我想要问的另一个问题是,在客户端和服务器上打开端口是否重要?例如 - 我在端口50505上创建了程序,在客户端计算机上端口是打开的,但是在服务器上打开50505也很重要吗?

这是我的project

如果有人能找到问题,请告诉我。我会很感激

2 个答案:

答案 0 :(得分:1)

好的,首先要确保在客户端程序中,Localport没有设置为任何东西,因为Windows会将其分配一个,但RemotePort设置为50505.在服务器端,RemotePort设置为空,并且LocalPort设置为50505。

接下来,您需要确保您的服务器在您的网络上具有静态IP。 因此,如果您的路由器的LAN IP是192.168.1.1,则需要将服务器设置为 像192.168.1.50这样的东西,只要确保它不会被放入范围或者 DHCP服务器(这是为每台计算机提供路由器IP地址的服务器)。

接下来,您需要为“端口转发”设置路由器。默认情况下,您的路由器不知道如何处理互联网发送给它的数据。您必须设置路由器以将端口50505中的任何数据转发到网络上的服务器。

虽然这种接缝真的很长并且很长,但设置时间不应超过5-10分钟。

祝你好运!

答案 1 :(得分:0)

您需要配置服务器所在的路由器,以将该端口上的连接转发到运行该服务器的计算机。

否则,客户端将无法连接到服务器。