1

我被这个问题困住了。我正在使用服务器(我拥有完全的额外权限并且可以做任何事情)。为此,我想运行一个文件,该文件将连接到端口并从设备接收数据。这些设备将使用 TCP 发送数据。

服务器文件应该连续运行,24x7,没有任何中断。但它没有发生。为了更深入地了解我正在粘贴代码。

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_listen($socket) or die("Could not set up socket listener\n");
while(true) {
    if ($spawn = socket_accept($socket)) {

        if ($input = socket_read($spawn, 1024)) {
            // MY REST OF THE CODE HERE
        }

        socket_close($spawn);
        unset($spawn);
    }
}

在第 5 行,服务器将接受连接并执行下一个循环。如果设备连续发送数据,那就很好了。它将等待设备,一旦接收到数据,它将继续进行。但几个小时后,服务器文件停止响应。端口被消耗,但服务器不处理数据。我制作了一个客户端文件来测试端口是否正常工作。客户端文件与服务器成功连接。

我应该怎么做才能连续 24x7 无错误地运行此文件。我想问的另一件事是,如果设备在一段时间内停止发送数据怎么办?会影响5号线吗?这会导致文件挂起吗?

4

0 回答 0