сокеты
Проблема: код в первом файле:
$port = 80;
$servName = "localhost";
$arr = array();
$arr[] = 0;
$arr[] = 7;
$arr[] = 6;
$arr[] = 5;
$arr[] = 4;
$i = 0;
do {
$sock = fsockopen($servName,$port);
fwrite($sock,$arr[$i]);
$i++;
fclose($sock);
sleep(1);
}
while($i < count($arr));
Код во втором файле:
$sock = fsockopen("GPS",80);
$r = "";
while(true)
{
$r .= fread($sock,128);
}
fclose($sock);
echo $r;
Первый файл исполняеться, но во втором - валиться ошибка, мол время исполнения истекло. Я понимаю что проблема не связана с этой ошибкой, эта ошибка закономерно появляеться.
Проблема в том что я не правильно принимаю данные во втором файле.
Первый файл находиться в каталоге GPS/www
Второй файл находиться в каталоге localhost/www
Задача: Необходимо через сокеты переслать данные из первого файла во второй.
Цель: написать эмулятор GPS трекера TR-102.
Может кто сталкивался с подобными задачами?
Если возможно дайте линки на соответствующие ресурсы, где хоть немного дан мануал по написанию подобных вещей (не просто статьи про то как юзать сокеты).
!) Нужно приводить ошибку. (или же подключать телепатов)
Предполагаю, что ошибка в превышении ограничения по времени( Time Limit Exceed или что-то в этом роде).
Заметки по второму файлу:
1)Он никогда не выходит из цикла, по этой причине ничего не выводит.
участок кода
---fclose($sock);
---echo $r;
не исполняется.
2) Повторяется "без передышки"
{
$r .= fread($sock,128);
}
sleep на пару секунд добавить что-ли?
твой "второй файл" является сетевым сервером. одновременно он является скриптом, который выполняется веб-сервером. а проблема в том, что он не должен выполняться под веб сервером, т.к. версия php предназначеная для web ограничивает время выполнения скрипта (по умолчанию 30 секунд). т.е. тебе твой сетевой сервер надо запустить напрямую скормив исходник интерпретатору php, и не через браузер