Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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 套接字\u创建\u侦听不适用于windows中的所有接口_Php_Windows_Symfony_Sockets - Fatal编程技术网

Php 套接字\u创建\u侦听不适用于windows中的所有接口

Php 套接字\u创建\u侦听不适用于windows中的所有接口,php,windows,symfony,sockets,Php,Windows,Symfony,Sockets,我正在使用Symfony 4打开TCP侦听器套接字。它在linux中工作得很有魅力。我也必须让它在Windows操作系统中工作 如果我执行Symfony命令,它将打开127.0.0.1:4501上的套接字,我可以从位于同一台机器上的客户端进行连接。当我试图从局域网内的其他PC连接到局域网外的其他设备(我已将端口转发到路由器)时,就会出现问题 这是打开套接字的代码: if (!$localSocket = socket_create_listen($listeningPort)) {

我正在使用Symfony 4打开TCP侦听器套接字。它在linux中工作得很有魅力。我也必须让它在Windows操作系统中工作

如果我执行Symfony命令,它将打开127.0.0.1:4501上的套接字,我可以从位于同一台机器上的客户端进行连接。当我试图从局域网内的其他PC连接到局域网外的其他设备(我已将端口转发到路由器)时,就会出现问题

这是打开套接字的代码:

 if (!$localSocket = socket_create_listen($listeningPort)) 
 {
     throw new \RuntimeException('Could not create socket.');
 }
如果在命令promt上执行此命令,则会看到端口在127.0.0.1:4501上打开,而不是在所需的值0.0.0.0:4501上打开

如何能够监听所有网络接口并使其工作


谢谢。

我在Windows和Linux之间用不同的代码进行了测试。结果是:

//Windows
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') 
{
   $localSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
   socket_bind($localSocket, "0.0.0.0", $listeningPort);
   socket_listen($localSocket);
} 
else 
{
   //Linux
   if (!$localSocket = socket_create_listen($listeningPort)) 
   {
      throw new \RuntimeException('Could not create socket.');
   }
}