php中使用socket,我把代码写成下面这两种:
<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
?> 或者
<?php
try {
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
}
catch (Exception  $e)
{
echo $e->getMessage();
}
?> 
创建失败的时候,总是提示:
HTTP/1.0 500 Internal Server Error如何才能让php提示socket创建失败,而不是500错误呢?谢谢

解决方案 »

  1.   

    The socket functions described here are part of an extension to PHP which must be enabled at compile time by giving the --enable-sockets option to configure.用phpinfo察看一下,PHP有没有加载socket.
      

  2.   

    没有加载socket也不应该提示500错误吧?再者,我现在不关心创建是否成功
    我关心的是,创建失败的时候,不是提示服务器内部错误,而是告诉用户SOCKET创建失败。代码该怎么搞?
      

  3.   

    web服务器里设置,显示详细错误信息。
    php.ini display_errors = ON
      

  4.   

    我改成On之后,确实不报500错误了.
    不过利用try catch还是捕获不到异常,好像php并没有抛出那个异常.另,能不有不改配置来实现不报500错误呢?
      

  5.   

    PHP手册上的例子:
    <?php
    if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
       echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
    }if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
       echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
    }
    ?>