0

Linuxに、接続された新しいソケットを検出したときにファイルを作成/変更するプログラムがあります。そのファイルにIPを記録し、クライアントが切断されたとき、または切断されたときにIPを削除します。

PHPではinotifyを知っていますが、Javaとは異なり、ブロックして更新します。Javaとphpでこれを行うには、Linuxでファイルを監視し、Linuxでファイルが変更されたことをWebサイトで更新できますか?

ありがとうございました..

例:phpで。

<?php

$fd = inotify_init();

$watch_descriptor = inotify_add_watch($fd, '/tmp/devfile.txt', IN_MODIFY);

touch('/tmp/devfile.txt');

while(true){
$events = inotify_read($fd);

$contents =file_get_contents('/tmp/devfile.txt');

echo $contents;
}

$read = array($fd);
$write = null;
$except = null;

stream_select($read,$write,$except,0);


stream_set_blocking($fd, 0);

inotify_read($fd); 

$queue_len = inotify_queue_len($fd);

inotify_rm_watch($fd, $watch_descriptor);


fclose($fd);

?>
4

2 に答える 2

0

Java 7は、inotifyのようなファイル通知をサポートしています。チュートリアルについては、こちらをご覧ください。

おそらく、PHPから使用できるCプログラムを見つけたり、作成したりできますか?

于 2012-10-24T02:26:05.160 に答える
0

「javaとphp」の意味はわかりませんが、探しているものがファイルへの変更を通知する純粋なJavaの方法である場合は、java.nio.file.PathとWatchServiceapi。

これは、Oracleのドキュメントからの説明です。

于 2012-10-24T02:27:17.277 に答える