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

时间:2012-05-14 20:05:52

标签: php sockets

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

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

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

2 个答案:

答案 0 :(得分:2)

  

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

好像你可以使用socket_sendto并将一些'ping'数据发送到远程主机,然后测试返回值以确定套接字是否仍然建立。

答案 1 :(得分: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。