如何检测流套接字中的中止连接-PHP

赛义德·埃扎蒂

我使用以下代码接收数据并将数据发送回对等方:

$sock = stream_socket_server("tcp://127.0.0.1:9000", $errno, $errorMessage);
if (!$sock) {
    echo "error code: $errno \n error msg: $errorMessage";
}
$read[0] = $sock;
$write = null;
$except = null;
$ready = stream_select($read,$write,$except,10);
if ($ready) {
    $a = @stream_socket_accept($sock);

    $in = '';
    do {
        $temp = fread($a,1024);
        $in .= $temp;
    } while (strlen($temp));
    var_dump($in);

    $out = '....'//some data
    $out2 = '....'//some data
    fwrite($a,$out);
    fwrite($a,$out2);
}       

但是第二个fwrite给了我这个错误:

注意:fwrite():6个字节的发送失败,错误码为errno = 10053。主机中的软件中止了已建立的连接。

现在如何在发送数据之前检测到异常中断的连接?

内特·哈蒙德

我有类似的东西,我的解决方案是将PHP警告转换为异常并以这种方式处理。具体来说:

set_error_handler("warning_handler", E_WARNING);    
try{
    $res = fwrite($a,$out);
} catch(Exception $e){
    //handle the exception, you can use $e->getCode(), $e->getMessage()
}   
restore_error_handler();    
....
function warning_handler($errno, $errstr) { 
    throw new Exception($errstr, $errno);   
}

恢复错误处理程序似乎最好,这样就不会弄乱其他地方的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何计算PHP套接字中的连接数

来自分类Dev

PHP套接字连接-Telnet拒绝连接

来自分类Dev

在 PHP 中关闭套接字

来自分类Dev

FFMPEG检测流媒体量(PHP)

来自分类Dev

FFMPEG检测流媒体量(PHP)

来自分类Dev

PHP套接字,无法连接-循环?

来自分类Dev

PHP和C ++之间的套接字连接

来自分类Dev

PHP多连接套接字(广播问题)

来自分类Dev

将 PHP 套接字连接到 SFML

来自分类Dev

如何在localhost + ubuntu中测试PHP套接字编程

来自分类Dev

如何在localhost + ubuntu中测试PHP套接字编程

来自分类Dev

如何在套接字编程中从Server(server.java)socket连续侦听PHP(client.php)套接字

来自分类Dev

是否保证php的socket_select()能够检测所有客户端套接字断开连接?

来自分类Dev

PHP:无法从php-fpm连接到套接字

来自分类Dev

如何使用PHP创建到同一主机的多个持久套接字连接TCP / IP

来自分类Dev

检查PHP套接字服务器中的断开连接客户端

来自分类Dev

检查PHP套接字服务器中的断开连接客户端

来自分类Dev

如何通过php编写套接字代码

来自分类Dev

PHP Web套接字未使用SSL连接

来自分类Dev

PHP套接字脚本导致许多长期的CLOSE_WAIT套接字连接

来自分类Dev

PHP客户端套接字与C#套接字服务器的连接

来自分类Dev

如何从Java中的字节流读取(PHP / Java套接字通信)

来自分类Dev

如何在Linux托管中运行php套接字服务器

来自分类Dev

如何从Java中的字节流读取(PHP / Java套接字通信)

来自分类Dev

如何检测Boost Tcp套接字何时断开连接

来自分类Dev

检测非阻塞套接字中的空闲连接

来自分类Dev

PHP:如何从套接字读取N个字节?

来自分类Dev

如何在PHP中找到套接字的本地端口?

来自分类Dev

如何关闭python中的套接字连接?

Related 相关文章

  1. 1

    如何计算PHP套接字中的连接数

  2. 2

    PHP套接字连接-Telnet拒绝连接

  3. 3

    在 PHP 中关闭套接字

  4. 4

    FFMPEG检测流媒体量(PHP)

  5. 5

    FFMPEG检测流媒体量(PHP)

  6. 6

    PHP套接字,无法连接-循环?

  7. 7

    PHP和C ++之间的套接字连接

  8. 8

    PHP多连接套接字(广播问题)

  9. 9

    将 PHP 套接字连接到 SFML

  10. 10

    如何在localhost + ubuntu中测试PHP套接字编程

  11. 11

    如何在localhost + ubuntu中测试PHP套接字编程

  12. 12

    如何在套接字编程中从Server(server.java)socket连续侦听PHP(client.php)套接字

  13. 13

    是否保证php的socket_select()能够检测所有客户端套接字断开连接?

  14. 14

    PHP:无法从php-fpm连接到套接字

  15. 15

    如何使用PHP创建到同一主机的多个持久套接字连接TCP / IP

  16. 16

    检查PHP套接字服务器中的断开连接客户端

  17. 17

    检查PHP套接字服务器中的断开连接客户端

  18. 18

    如何通过php编写套接字代码

  19. 19

    PHP Web套接字未使用SSL连接

  20. 20

    PHP套接字脚本导致许多长期的CLOSE_WAIT套接字连接

  21. 21

    PHP客户端套接字与C#套接字服务器的连接

  22. 22

    如何从Java中的字节流读取(PHP / Java套接字通信)

  23. 23

    如何在Linux托管中运行php套接字服务器

  24. 24

    如何从Java中的字节流读取(PHP / Java套接字通信)

  25. 25

    如何检测Boost Tcp套接字何时断开连接

  26. 26

    检测非阻塞套接字中的空闲连接

  27. 27

    PHP:如何从套接字读取N个字节?

  28. 28

    如何在PHP中找到套接字的本地端口?

  29. 29

    如何关闭python中的套接字连接?

热门标签

归档