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

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

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

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

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

Предположим ты выбрал себе трекер, который шлет данные по GPRS на некий указанный порт по определенному адресу, узнал его протокол. Теперь стоит задача как реализовать сервер на указанному порту, который будет реализовывать протокол, по которому общается трекер. Вот здесь возможно уже и Java, а возможно и что-то совсем иное.
...
Рейтинг: 0 / 0
23.02.2014, 16:57
    #38569866
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать GPS сервер
Открываешь сокет, читаешь из него данные закрываешь.
В php сокеты тоже есть (зачем-то) так что можно сделать и на нём если хочется. Но вряд ли это будет удобно (это же php..).
...
Рейтинг: 0 / 0
23.02.2014, 18:46
    #38569895
motoroller1983
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать GPS сервер
Вот все верно поняли трекер который по 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
23.02.2014, 19:01
    #38569904
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать GPS сервер
делал связку андроид-сервер(томкат)-браузер(гуглькарты)
в качестве протокола websocets
минимум трафика,
минимум нагрузки
андроид сам отдаёт данные
...
Рейтинг: 0 / 0
23.02.2014, 21:01
    #38569936
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать GPS сервер
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
23.02.2014, 22:02
    #38569946
motoroller1983
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать GPS сервер
1) Подскажите какзакрыть сокет?
2) и как скомпилировать под unix


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


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

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


Сокеты работают в ядре, во всех языках одинаково.
Другое дело, что сервер писать на php как то уж совсем хреново...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
18.12.2017, 20:32
    #39571654
arigami
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать GPS сервер
Привет. Полохо пишу на руском.
Ест часы 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
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать GPS сервер / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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