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 に答える