【发布时间】:2011-12-17 23:17:31
【问题描述】:
我正在尝试使用this c socket class,但它仅在我自己的计算机上使用时才有效。
仅限桌面
服务器是这样启动的:cSocketServer -p:2030 -i:192.168.178.22
客户端连接:cSocketclient -p:2030 -s:192.168.178.22
工作正常。
桌面服务器、笔记本电脑客户端
服务器:cSocketServer -p:2030 -i:192.168.178.22
客户:cSocketclient -p:2030 -s:192.168.178.22
与上面完全相同,但这会引发connect failed: 10060 错误。这基本上意味着它超时了。
仅限桌面(外部地址)
服务器:cSocketServer -p:2030 -i:192.168.178.22
客户:cSocketclient -p:2030 -s:xx.xx.xx.xx
其中 xx.xx.xx.xx 是我的外部 IP 地址。
同样的错误:connect failed: 10060。端口 2030 绝对是开放且可访问的,因为我使用一些不相关的应用程序对其进行了测试,这些应用程序允许用户选择自己的端口(如 utorrent)。当它们运行时,whatismyip.org 表示端口 2030 已打开。但是当我运行 my 应用程序时,它说它超时。这些应用程序在防火墙中没有任何特殊权限。
但即使我确实弄乱了一些防火墙/路由器设置(我很确定我没有这样做),也无法解释为什么我无法从本地网络连接到服务器。其他服务(例如文件共享)工作正常,因此两台计算机之间肯定存在连接。
客户端和服务器都在 Windows 7 64 位上运行。
也;出于某种原因,每个连接的客户端都分配了自己的入站端口或其他什么?这正常吗?当客户端连接服务器状态时;
Accepted client: 192.168.178.22:55156
Accepted client: 192.168.178.22:55164
Accepted client: 192.168.178.22:55176
这是怎么回事?
【问题讨论】: