php socket create_socket 块

Posted

技术标签:

【中文标题】php socket create_socket 块【英文标题】:php socket create_socket blocks 【发布时间】:2012-09-05 17:40:51 【问题描述】:

php 当我调用 socket_create 时,它​​会阻塞并且没有任何反应。

这里是代码。 我从 php.net 复制了它 我使用 WebMatrix , IIS Windows。 (不是阿帕奇)

$address = '192.168.0.234';      

$port = 1000;
echo "address is : $address --- <br/><br/><br/>" ;

echo "before socket_create ... <br/> " ;
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) ;
echo "after socket_create <br/> " ;

echo "before socket_bind() <br/> " ;
if (socket_bind($sock, $address, $port) === false) 
   echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";


if (socket_listen($sock, 5) === false) 
    echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";


?>

当我运行它时,它只显示: 在 socket_create ... 然后什么也没有发生 帮忙!

【问题讨论】:

socket_create 不应阻止。您能否启用display_errors 并将error_reporting 设置为-1,也许它可以让您知道发生了什么。 【参考方案1】:

如果服务器的设置不允许 PHP 创建套接字,您可能想询问您的主机。

【讨论】:

以上是关于php socket create_socket 块的主要内容,如果未能解决你的问题,请参考以下文章

Linux 中的优雅关闭服务器套接字

PHP创建socket服务

关于php的socket

PHP与socket编程

php中关于socket的系列函数总结

如何在 PHP 中启用 Socket?