Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何判断套接字在PHP中是否打开?_Php_Sockets - Fatal编程技术网

如何判断套接字在PHP中是否打开?

如何判断套接字在PHP中是否打开?,php,sockets,Php,Sockets,我需要维护一些用PHP打开的套接字,并定期检查这些套接字。我不熟悉PHP中的套接字;我像这样打开插座: $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $ip, $port); 一些套接字可能会进入不返回消息的状态;这些套接字只接收消息如果套接字没有响应消息,如何判断套接字是否已打开? socket_sendto-向套接字发送消息,无论其是否已连接 似乎您可以使用并向远程主机发送一

我需要维护一些用PHP打开的套接字,并定期检查这些套接字。我不熟悉PHP中的套接字;我像这样打开插座:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
socket_connect($socket, $ip, $port);
一些套接字可能会进入不返回消息的状态;这些套接字只接收消息如果套接字没有响应消息,如何判断套接字是否已打开?

socket_sendto-向套接字发送消息,无论其是否已连接


似乎您可以使用并向远程主机发送一些“ping”数据,然后测试返回值以确定套接字是否仍然建立。

最好使用函数:fsockopen()

请阅读以下内容:

或者您可以尝试使用以下函数:socket\u create\u listen()

请阅读以下内容:

(这只是一个实验。)


要定期检查,您可以使用一个简单的cron进行检查。

您能找到它吗?从套接字读取的非阻塞尝试如何?它应该返回空白或false,这取决于它是否连接。我认为还会生成一个警告,但可以禁用。您应该区分“打开”的套接字,例如操作系统为这些描述符分配资源,以及“连接”到其他套接字的套接字(例如远程主机上的服务器套接字)。在这种情况下,我认为问题应该是关于“…如果插座连接被打开…”。