我有两个自己编写的程序:服务器和客户端。客户端使用服务器 IP 地址通过互联网连接到它。建立连接后,服务器必须显示消息“客户端已连接”。就是这样。服务器和客户端程序在不同的计算机上的 Windows 7 下运行。为了使服务器程序正常工作,我做了一些环境自定义:
1. 禁用防火墙:Windows 防火墙 - 自定义设置 - 关闭 Windows 防火墙(进行如下设置这里)
2. 我有静态 IP 和路由器 TPLink TL-WR841N。所以我通过以下方式进行端口转发:路由器设置 - 转发 - 虚拟服务器。在打开的菜单我输入了服务器本地 IP(例如 192.168.1.15)和端口(37777)。此时在线端口检查服务如下这说端口 37777 已开放。
现在我希望一切都能正常工作。但事实并非如此:客户端程序尝试建立连接,但失败了,显示“套接字超时错误”。telnet 等程序也无法连接到服务器。如果我在服务器计算机上同时运行服务器和客户端程序(一台计算机连接到自身),一切都会正常工作(即使我使用外部 IP 地址)。如果我运行服务器程序,然后尝试端口检查服务,它会显示“客户端已连接”。
如何正确配置两台计算机?