8

我需要维护一些用 PHP 打开的套接字并定期检查这些套接字。我是 PHP 中套接字的新手;我像这样打开套接字:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
socket_connect($socket, $ip, $port);

一些套接字可能会进入不返回消息的状态;这些套接字只接收消息。如果套接字没有响应消息,我如何判断套接字是否打开?

4

2 回答 2

2

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

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

于 2012-05-14T20:15:39.893 回答
0

最好使用函数: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 进行检查。

于 2012-05-14T20:35:46.810 回答