php 创建socket 服务器500错误 请教

codeyell-com 2010-08-10 10:23:38
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错误呢?

谢谢
...全文
157 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CunningBoy 2010-08-10
  • 打赏
  • 举报
回复
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";
}
?>
codeyell-com 2010-08-10
  • 打赏
  • 举报
回复
我改成On之后,确实不报500错误了.
不过利用try catch还是捕获不到异常,好像php并没有抛出那个异常.

另,能不有不改配置来实现不报500错误呢?

[Quote=引用 3 楼 dingsongtao 的回复:]
web服务器里设置,显示详细错误信息。
php.ini display_errors = ON
[/Quote]
Dleno 2010-08-10
  • 打赏
  • 举报
回复
web服务器里设置,显示详细错误信息。
php.ini display_errors = ON
codeyell-com 2010-08-10
  • 打赏
  • 举报
回复
没有加载socket也不应该提示500错误吧?

再者,我现在不关心创建是否成功
我关心的是,创建失败的时候,不是提示服务器内部错误,而是告诉用户SOCKET创建失败。

代码该怎么搞?
CunningBoy 2010-08-10
  • 打赏
  • 举报
回复
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.

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧