我需要维护一些我用PHP打开的套接字,并定期检查这些套接字。我是 PHP 套接字的新手; 我像这样打开插座:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $ip, $port);
某些套接字可能会进入不返回消息的状态;这些套接字仅接收消息。如果套接字没有响应消息,如何判断套接字是否已打开?
socket_sendto — 向套接字发送消息,无论套接字是否已连接
似乎您可以使用socket_sendto并将一些"ping"数据发送到远程主机,然后测试返回值以确定套接字是否仍已建立。
最好使用函数:fsockopen()
阅读此内容: http://www.php.net/manual/en/function.fsockopen.php
或者你可以尝试使用函数:socket_create_listen()
阅读此内容: http://www.php.net/manual/en/function.socket-create-listen.php
(这个只是实验性的。
并且要定期检查,您可以使用简单的 cron 进行检查。