【发布时间】:2015-05-06 13:54:31
【问题描述】:
设置
- 路由器华为HG532b配置转发端口= 50111通过启用NAT>DMZ和放 主机地址 IP = 192.168.1.5 ,这是我的电脑在网络中的静态 IP。
- 路由器配置为通过 NAT 映射端口来转发端口 = 50111 > 使用以下设置的端口映射:
协议 = TCP/UDP,外部端口 = 50111,内部端口 = 50111, 内部主机 = 192.168.1.5,远程主机 = 192.168.1.5,映射 名称=聊天。
- 路由器配置为通过 NAT 触发端口来转发端口 = 50111 > 使用以下设置触发端口:
触发协议=TCP/UDP,触发起始端口=50111,触发结束 端口 = 50111,开放起始端口 = 50111,开放结束端口 = 50111,触发器 name=聊天
-
路由器具有公共或外部或 WAN IP = 188.167.2.4。
-
路由器配置为启用 UPnP。
-
路由器配置 LAN > DHCP 通过 make Start IP address = 192.168.1.6, End IP 地址 = 192.168.1.253
-
路由器是我的网关,IP = 192.168.1.1。
-
我的电脑有静态 IP = 192.168.1.5,防火墙服务关闭,没有安装杀毒软件或任何其他防火墙,我的 XP 有 service pack 3。
问题:
我创建了两个程序,客户端和服务器,它们是聊天程序的一部分。 服务器的套接字具有 LocalPort = 50111 并进入侦听模式。 客户端的套接字有 RemotePort = 50111,并有一个文本框来放置远程 IP 和名为 Connect 的命令按钮。
-
当我在具有静态 IP = 192.168.1.5 的同一台 PC 中测试客户端和服务器并将远程 IP 放入客户端 = 192.168.1.5 时,一切正常。
-
当我在静态 IP = 192.168.1.5 的 PC 中测试服务器并将客户端放入 IP = 192.168.1.9 的 PC 并将远程 IP 放入客户端 = 192.168.1.5 时,一切正常。
-
当我在具有静态 IP = 192.168.1.5 的同一台 PC 中测试客户端和服务器并将远程 IP 放入客户端 = 188.167.2.4(即我的路由器公共或外部或 WAN IP)中时,然后按 连接,出现winsock错误“连接被强制拒绝”。
-
当我在具有静态 IP = 192.168.1.5 的 PC 中测试服务器并将客户端放入 IP = 192.168.1.9 的 PC 并将远程 IP 放入客户端 = 188.167.2.4(即我的路由器公共或外部或WAN IP),然后按连接,会出现winsock错误“连接被强制拒绝”。
-
当我在具有静态 IP = 192.168.1.5 的 PC 中测试服务器并将客户端放入另一个 IP = 192.168.1.7 的网络中的 PC 并将远程 IP 放入客户端 = 188.167.2.4 时(那是我的路由器公共或外部或WAN IP),然后按连接,将引发winsock错误超时。
我了解到,如果客户端和服务器在同一台 PC 中,将客户端远程 IP 设置为公共或外部或 WAN IP 将不起作用。
我了解到带有 Service Pack 3 的 XP 存在端口转发问题。 我读到有一种称为打孔的技术,可以绕过路由器端口转发或防火墙。
我希望专家向我解释,哪里出了问题以及如何纠正它。
【问题讨论】:
标签: server network-programming client winsock