小编Sti*_*gar的帖子

PHP如何强制释放socket

我一直在尝试使用线程来管理套接字连接.但是在执行我的进程/线程之间,套接字没有得到清理,我得到了异常:

socket_create_listen():无法绑定到给定的地址[98]:已经在使用的地址......大约1分钟后它将被最终清除.

我在互联网上搜索过,但找不到解决方案.此外,如果您删除while(1)循环中的代码并执行两次我的php文件,它也会给出相同的错误.我希望所有的资源都可以通过流程退出来清理.

<?php
date_default_timezone_set('UTC');

echo date("H:i:s")."\tINFO: Starting my test\n";
$socket = null;

//start our test
try {
    echo date("H:i:s")."\tINFO: Setup socket for 1st time\n";
    setupSocket();
    usleep(100000);

    //send request to socket via curl
    $command = 'curl -s --no-buffer -d "{\"action\":\"getStatus\"}" -o socket.txt http://localhost:13000 > socket.log 2>&1 &';
    exec($command);
    usleep(100000);

    echo date("H:i:s")."\tINFO: Now processing request\n";
    processRequest();

    echo date("H:i:s")."\tINFO: Close socket\n";
    closeSocket();
} catch (Exception $e) {
    echo date("H:i:s")."\tERROR: ".$e->getMessage() ."\n";
}

while(1) {
    try {        
        echo date("H:i:s")."\tINFO: Try again to set …
Run Code Online (Sandbox Code Playgroud)

php sockets

7
推荐指数
1
解决办法
1519
查看次数

标签 统计

php ×1

sockets ×1