powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать GPS сервер
14 сообщений из 14, страница 1 из 1
Как сделать GPS сервер
    #38569694
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача считывать данные с GPS трекеров, которые могут отдавать данные на определенный сервер и на нужный порт. Думал обойтись PHP, но оказывается вряд ли получиться (((
Знатоки подскажите поможет ли мне JAVA?

А главное (код я уже нашел не пробовал), как мне этот файл (не совсем знаю он компилируется или что, не знаток Java) поместить на хостинг, и его надо будет поставить что-то типа "автозагрузки"?

Имеет ли значение какой хостинг Windows или Unix? Нужен ли VPS или будет достаточно виртуального?

Всем заранее спасибо, так как я не спец по Java, не судите строго.
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569697
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983,
Если не знаешь вообще ничего и ни один ЯП то как тебе помочь?
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569800
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут главный вопрос как это сделать технически?
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569859
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983,

До Java тебе еще рано. Трекеры бывают активные и пассивные. Активные сбрасывают свои данные либо через SMS, либо по GPRS. Пассивные вообще ничего не сбрасывают, а ждут когда к ним придет запрос (как правило в виде SMS) на получение координат. У каждого производителя свой протокол и способ оповещения.

Предположим ты выбрал себе трекер, который шлет данные по GPRS на некий указанный порт по определенному адресу, узнал его протокол. Теперь стоит задача как реализовать сервер на указанному порту, который будет реализовывать протокол, по которому общается трекер. Вот здесь возможно уже и Java, а возможно и что-то совсем иное.
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569866
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Открываешь сокет, читаешь из него данные закрываешь.
В php сокеты тоже есть (зачем-то) так что можно сделать и на нём если хочется. Но вряд ли это будет удобно (это же php..).
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569895
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот все верно поняли трекер который по gprs отдает данные про сокет это понятно.
Скажите на чем лучше реализовать Есть опыт в PHP/ но есть мнение что сокеты там не очень хорошо работают.

Вот поэтому и написал на форум java/ Тем более нашел небольшой исходник который это делает. вот вопрос еще
как это скомпилировать этот код чтобы можно было использовать на unix хостинг

Так же вопрос, как я понимаю это дело можно будет использоваться тольо на Vps сервере?
Никакой виртуальный для этих средств не пойдет?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
import java.io.*;
import java.net.*;

public class GPSServer extends Thread{
    Socket s; 
    int num;

    public GPSServer(){
            try{  
                    int i = 1;
                    ServerSocket server = new ServerSocket(3128);

                    System.out.println("server is started");
                
                    while(true){
                        GPSServer gPSServer = new GPSServer(i, server.accept());
                        
                        i++;
                    }
            }
            catch(Exception e)
            {System.out.println("init error1: "+e);}
    }

    public GPSServer(int num, Socket socket_in)
    {
    
        System.out.println("new connection"+num);
        this.num = num;
        this.s = socket_in;
        
        setDaemon(true);
        setPriority(NORM_PRIORITY);
        start(); 
    }
    
    @Override
    public void run(){
        try{
            while(true)    {                 
                // буффер данных в 64 килобайта
                byte [] buf = new byte[64*1024];
                // читаем 64кб от клиента, результат - кол-во реально принятых данных
                // int r = is.read(buf);
                
                // из сокета клиента берём поток входящих данных
                //InputStream is = s.getInputStream();
                int r = s.getInputStream().read(buf); // количество принятых байт в посылке
                System.out.println("Recessive byte"+r);
                
                if (r==(-1)){
                    System.out.println("socket close");  // если клиент дисконект закрываем сокет
                    return;
                    }
                
                // и оттуда же - поток данных от сервера к клиенту
                OutputStream os = s.getOutputStream();
                
                String data = new String(buf, 0, r);// создаём строку, содержащую полученную от клиента информацию
                System.out.println(data); //выводим полученные данные на экран

                String sss="PWD:8888,STATUS%";//запрос статуса (без него интервал между сообщения не постоянен и часто обрывается коннект
                os.write(sss.getBytes()); // отправляем данные клиенту 
                }
            }
            catch(Exception e){
                System.out.println("init error2: "+e); // вывод исключений                 
            }
    }
    
}



Так же собственно этот код, вопрос он поддерживает многопоточность?

Собственно задача, с трекера получить строку (она идет в виде текста) и передать в скрипт на сервере. Не более!
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569904
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делал связку андроид-сервер(томкат)-браузер(гуглькарты)
в качестве протокола websocets
минимум трафика,
минимум нагрузки
андроид сам отдаёт данные
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569936
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
motoroller1983Тем более нашел небольшой исходник который это делает.
Собственно исходник ничего и не делает. Читает байты из сокета печатает их в консоль сокет за собой не закрывает.
Так маленько адекватнее
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
import java.io.*;
import java.net.*;
import static java.lang.System.out;

public class GPSServer extends Thread {

    public static void main(String[] args) throws IOException {
        ServerSocket server = new ServerSocket(3128);
        out.println("server is started");
        while (true) {
            GPSServer gpsServer = new GPSServer(server.accept());
            gpsServer.start();
        }
    }

    private final Socket socket;
    public GPSServer(Socket socket) {
        this.socket = socket;
    }

    private static final String CHARSET_NAME = "Cp1251";
    @Override public void run() {
        try (
                BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), CHARSET_NAME));
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), CHARSET_NAME))) {
            writer.write("PWD:8888,STATUS%");
            for (String readedLine; (readedLine = reader.readLine()) != null;) {
                out.println(readedLine);
            }
        } catch (Throwable e) {
            out.println(e.getMessage());
        }
    }
}


motoroller1983Так же собственно этот код, вопрос он поддерживает многопоточность?
Да
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38569946
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Подскажите какзакрыть сокет?
2) и как скомпилировать под unix


Заранее спасибо
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38570034
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller19831) Подскажите какзакрыть сокет?
2) и как скомпилировать под unix


Заранее спасибо
1. Socket.close();
2. javac
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38570041
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
motoroller19831) Подскажите какзакрыть сокет?
В моём примере он закрывается.
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38570065
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983, а сколько устройств надеетесь подключить ?
Мы тут тоже, делали себе девайсы для больниц, где то по 200-300 пациентов на больницу. А последние полгода поперло :-) и теперь проблема - кластер из нескольких серверов 2-3 тысячи устройств обрабатывает. Куда деть оставшиеся 10 миллионов ?
Сейчас смотрим Akka actor+spray. Не блокирующие соединения и кластер.
...
Рейтинг: 0 / 0
Как сделать GPS сервер
    #38574817
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983,

Скажите на чем лучше реализовать Есть опыт в PHP/ но есть мнение что сокеты там не очень хорошо работают.


Сокеты работают в ядре, во всех языках одинаково.
Другое дело, что сервер писать на php как то уж совсем хреново...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как сделать GPS сервер
    #39571654
arigami
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Полохо пишу на руском.
Ест часы Q50 настроен на мой сервер чтобы отправит координаторы
как я понел кроме просто отправит координаторы.он еше способен принимат с сервера команды.
внизу мой код. проблема в том что сервер отправляет команды [3G*2256000835*0002*LK] или :[3G*8800000015*0005*VERNO] но от часы ответ нету . что я неправильно делаю?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
import java.io.*;
import java.net.*;
import java.nio.charset.StandardCharsets;
import java.sql.Timestamp;
import static java.lang.System.out;

public class Dps extends Thread {

    private static final String CHARSET_NAME = "Cp1251";
    private final Socket socket;
    
    public static void main(String[] args) throws IOException {
        
        ServerSocket server = new ServerSocket(8008);
        out.println("server is started");
        while (true) {
            Dps gpsServer = new Dps(server.accept());
            gpsServer.start();
        }
    }
    
    public Dps(Socket socket) { this.socket = socket; }
    
    @Override public void run() {
    
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));               
            
            for (String readedLine; (readedLine = reader.readLine()) != null;) {
                out.println(timestamp+" ------ "+readedLine);
            }
            
            String s = "[3G*2256000835*0002*LK]";
            writer.write(s);
                
        } catch (Throwable e) {
            out.println(e.getMessage());
        }
    }
}
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать GPS сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]