Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 无法承载winsock服务器_Sockets_Networking - Fatal编程技术网

Sockets 无法承载winsock服务器

Sockets 无法承载winsock服务器,sockets,networking,Sockets,Networking,我使用的是来自的简单msdn TCP套接字示例。当我的朋友运行服务器时,或者当我通过本地网络使用服务器时,一切都很好。但无法通过internet连接到我计算机上运行的服务器。我在路由器中打开了服务器绑定的端口,禁用了Windows防火墙,关闭了防病毒软件,但它不工作 以下是我从Wireshark得到的信息,但我不知道它的意思: 192.168.1.2是我的本地IP,17000是端口,由服务器绑定。我在同一台计算机上同时运行服务器和客户端。在您的计算机上运行服务器,并将其绑定到IP 192.168

我使用的是来自的简单msdn TCP套接字示例。当我的朋友运行服务器时,或者当我通过本地网络使用服务器时,一切都很好。但无法通过internet连接到我计算机上运行的服务器。我在路由器中打开了服务器绑定的端口,禁用了Windows防火墙,关闭了防病毒软件,但它不工作

以下是我从Wireshark得到的信息,但我不知道它的意思:


192.168.1.2是我的本地IP,17000是端口,由服务器绑定。我在同一台计算机上同时运行服务器和客户端。

在您的计算机上运行服务器,并将其绑定到IP 192.168.1.2或INADR_ANY aka 0.0.0,以绑定到端口17000上计算机的所有可用IP,并将路由器配置为将端口17000上的所有入站流量转发到IP 192.168.1.2。然后,您的朋友可以在端口17000上连接到路由器的公共IP。如果您的路由器没有ISP分配的静态IP,则必须使用外部服务查找当前IP,例如。

如果您没有全局IP地址,则需要购买一个才能执行此操作。我建议你多读一些关于网络、子网和NAT的书。你不需要购买静态IP。朋友可以连接到您当前连接到Internet的任何IP。如果你有一个动态IP,只需使用ipconfig或其他工具查找你当前的IP,并将其交给朋友连接即可。好吧,这正是我正在做的。它适用于我的朋友,但当我托管服务器时,它总是失败。然后,要么你的服务器没有实际侦听,要么你的路由器配置不正确,要么你的ISP正在阻止他们端的端口。如果你对前两个有把握,那么最后一个很可能就是罪魁祸首。一些ISP阻止其客户运行自己的服务器,除非您为此支付额外费用。打电话给您的ISP,询问您的具体设置。