我在开发MFC编程时遇到了一个非常奇怪的问题。
我在winsock.h中使用了connect()函数,以便使用指定的端口连接到我的服务器。 在正常情况下一切都很好,但是当我使用VPN时,我无法连接到我的服务器。 GetLastError()由10060返回 - 超时错误。
之后,我使用ping命令到我的服务器 - 这是好的,连接状态非常好 - 最多400ms。 所以,我使用telnet命令到我的服务器端口 - 我可以看到超时错误。
断开VPN后,telenet运行良好。
对我来说很奇怪...... 我该如何解决这个问题?
更多信息:我正在使用PacketiX,端口是17006。
答案 0 :(得分:5)
这可能与“套接字编程”无关,而与“网络配置”有关。
两种强大的可能性:
VPN有防火墙阻止您的连接 ......和/或......
您的内部LAN与VPN的LAN具有相同的网络号(例如,两个网络都为192.1.168.xxx),并且在VPN打开时,堆栈无法正确路由。
还有其他可能性。
强烈建议: 获取WireShark的副本并跟踪通过线路的呼叫:
答案 1 :(得分:3)
当我使用80端口时,一切都很好。 也许PacketiX会阻止17006端口。