1

它应该测试特定端口是否在 localhost 上打开,如果没有,请重新启动。

它在 Windows 中运行。

4

3 回答 3

1

这应该可以做到,在 Windows 7 上测试并正常工作。应该适用于所有 NT 口味:

function testPort($port, $timeout = 5) {
    if(!fsockopen('127.0.0.1', $port, $errno, $errstr, $timeout)) {
        exec("shutdown.exe /r");
    }
}

testPort(8080);
于 2010-01-27T11:52:44.650 回答
0

您可以编写一个 PHP 扩展来做到这一点。扩展应该使用 Windows API 来重启机器,因为套接字检查部分可以直接在 PHP 中完成。是一个关于如何编写扩展的问题。

InitiateSystemShutdown是 Win32 API 函数,您可以调用它来执行实际的重新启动。

于 2010-01-27T11:51:15.707 回答
0

使用您需要使用特定端口打开到本地主机的 TCP 连接(套接字)的套接字。如果连接建立,则表示端口打开,否则(如果超时或拒绝),则端口关闭。

这仅适用于 TCP 端口

这是一个示例代码

对于“重启”部分,使用exec('shutdown -r');

于 2010-01-27T11:51:47.187 回答