Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Php Websocket服务器连接_Php_Networking_Websocket - Fatal编程技术网

Php Websocket服务器连接

Php Websocket服务器连接,php,networking,websocket,Php,Networking,Websocket,我想用websocket制作一个服务器。我尝试了很多编程语言(Python,PHP,C++等),只要我连接到WS://127.0.0.1:12345,一切似乎都很好。但是如果我尝试将地址更改为我的PC(89.135.123.456)的IP地址,则无法连接到服务器。服务器始终绑定到IP 0.0.0.0,在我的路由器中启用端口12345。我可以使用我的IP地址连接到xampp服务器。我不能用我的IP地址连接到它的原因是什么?我想你是在你的本地机器上开发的,它通过一个带有网络地址转换(NAT)的通用路

我想用websocket制作一个服务器。我尝试了很多编程语言(Python,PHP,C++等),只要我连接到WS://127.0.0.1:12345,一切似乎都很好。但是如果我尝试将地址更改为我的PC(89.135.123.456)的IP地址,则无法连接到服务器。服务器始终绑定到IP 0.0.0.0,在我的路由器中启用端口12345。我可以使用我的IP地址连接到xampp服务器。我不能用我的IP地址连接到它的原因是什么?

我想你是在你的本地机器上开发的,它通过一个带有网络地址转换(NAT)的通用路由器连接到internet

将服务器绑定到0.0.0.0可以确保进程正在侦听所有接口,这是必需的,而且您已经拥有了,很好

使用外部IP地址时,您是从哪里尝试连接到WebSocket服务器的?当您使用典型的internet连接时,您不能在本地网络甚至本地主机上使用该连接。当您尝试从本地网络中的其他计算机连接到服务器时,需要使用本地IP地址


如果您尝试从“外部”连接,即使用路由器的外部IP地址从路由器的internet端连接,则需要确保在路由器中配置端口转发:任何带有目标
的IP数据包都需要转发到
您的\u本地\u IP:ws\u端口
。否则,路由器会简单地丢弃传入的数据包,因为这是意外的。

…456不能是您的ip,但如果您刚刚隐藏了真正的ip,那么就可以了。尝试在端口处远程登录到您的IP。同时检查您的防火墙设置。x.x.123.456,是的,它不是真正的ip:您是否检查了防火墙设置(如果有)?您需要添加异常以接受来自路由器的传入连接。您的apache服务器将在防火墙中添加此异常。我总是在防火墙上启用服务器程序。我正试图以IP地址从PC连接到服务器(但只有“localhost:12345”有效)。但是我来自其他城市的朋友无法通过89.135.123.456:12345连接到它。但是,他可以通过浏览器(http://89.135.123.456)连接到我的apache服务器。请尝试“虚拟服务器”部分,并确保转发到本地网络中的计算机。好的,如果
192.168.1.1
是您的内部IP地址,这就是您所需要的全部。从端口触发菜单中删除相应条目。为了进一步调试此问题,下一步将是查看从外部发送到外部ip:12345的数据包是否到达本地计算机@
192.168.1.1
。在Linux上,您可以使用
netstat
tcpdump
wireshark
进行此操作。在Windows上,使用防火墙和/或Windows资源监视器的监视功能。你也应该考虑接受/接受我的答案,原则上是正确的,其余的是在你方进行调试。