Прием данных от GPS-трекера

beejuice

Новичок
nc заработала, спасибо вам! Сейчас буду пробовать слушать порт)
 

beejuice

Новичок
Идут данные. Чаще приходят почему-то пустые строки, а иногда вполне понятная информация. Возможно ждет подтверждения или еще чего-то) Осталось теперь только понять, как это дело в PHP обрабатывать)

[root@v45987 ~]# nc -l 178.208.XX.XX 10000


#354188046274606##0#0000#AUT#1#250002151f0f73,151f0f6f,151f057a#08305.8347,E,5452.0136,N,0.08,38.44#180914#145926.000##
 

Активист

Активист
Команда форума
На вид CSV разделенный #, с каким-то форматом. Обработать апачем это чудо вы не сможете. Вы можете поискать готовые решения , если нет писать свое. Вам нужно писать сервер (демон), желательно на чем-то отличном от PHP (си), можно TCL. Если хотите на PHP - то придется писать на PHP. Формат передаваемых данных должен быть описан в каком-то RFC, гуглите. Координаты (а также серийный номер устройства, метки времени и т.п. ) скорее всего нужно будет ложить в СУБД, если вы хотите хранить историю точек. Если нужно RealTime приложение - то расчеты можно делать в самом приложении, а результат ложить например в memcache и оттуда забирать PHP для вывода.
 

Активист

Активист
Команда форума
можно конечно просто заюзать nc в виде демона (nc будет работать в фоне). Запускать от рута не стоит кстати, от юзера веб сервера лучше.
Код:
nc -l 178.208.XX.XX 10000 > ./tracker.dat 2>&1 &
и обрабатывать файл на PHP:
1. Открываете файл для чтения и записи;
2. Блокировка файла на запись;
3. Чтение данных;
4. Обнуление данных в файле;
5. Закрытие файла;
6. Обработка данных.

Но в этом случае на порт может приходить все что угодно, от сканеров сетей, от "хакеров" и т.п.
 

beejuice

Новичок
PHP я хорошо владею, с этим проблем не будет. Мне бы как-то понять, как получить эти данные из php-скрипта. Писать все в файл, а дальше разбирать в скрипте это то, что нужно! Его можно повесить на cron и пусть ковыряет раз в минуту)
 

Активист

Активист
Команда форума
Это вопрос или утверждение?)) Я вам написал как можно класть данные в файл.
Кстати, нулевые строки - это скорее всего отсутствие движения.
 

С.

Продвинутый новичок
PHP я хорошо владею, с этим проблем не будет. Мне бы как-то понять, как получить эти данные из php-скрипта. Писать все в файл, а дальше разбирать в скрипте это то, что нужно! Его можно повесить на cron и пусть ковыряет раз в минуту)
Зачем такие сложности? Подними обычный веб-сервер и твой index.php будет вызван при поступлении данных.
 

beejuice

Новичок
Можно последний вопрос? Объясните, пожалуйста, смысл этой команды
nc -l 178.208.XX.XX 10000 > ./tracker.dat 2>&1 &

Что означают эти параметры?
 

fixxxer

К.О.
Партнер клуба
Зачем такие сложности? Подними обычный веб-сервер и твой index.php будет вызван при поступлении данных.
О да, вот это
#354188046274606##0#0000#AUT#1#250002151f0f73,151f0f6f,151f057a#08305.8347,E,5452.0136,N,0.08,38.44#180914#145926.000##
прям так похоже на протокол HTTP!
Можно последний вопрос? Объясните, пожалуйста, смысл этой команды
nc -l 178.208.XX.XX 10000 > ./tracker.dat 2>&1 &

Что означают эти параметры?
man nc
man bash
 

beejuice

Новичок
nc -l 178.208.XX.XX 10000 > ./tracker.dat 2>&1 &
Общий смысл понятен: запустить сервер на прослушивание порта 10000, данные писать в файл.
Не очень понятна последняя часть 2>&1 &
Что устанавливают эти параметры?
 

beejuice

Новичок
Спасибо! В фоне работает, а вот при выходе из консоли завершается.

Пробовал писать:
nohup nc -l 178.208.XXX.XXX 10000 > ./tarcker.dat 2>&1 &

Не работает, пишет в файл nohup: ignoring input и все
Я понимаю, что видимо дело в синтаксисе, как-то нужно дать ему понять что (178.208.XXX.XXX 10000 > ./tarcker.dat 2>&1) это все команда. Но в Линуксе я совсем не разбираюсь...))
 
Сверху