powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / GPS Tracker
10 сообщений из 10, страница 1 из 1
GPS Tracker
    #38157875
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня.
Есть задача получать данные с GPS трекера через TCP. И есть вопросы:) Если кто сталкивался, подскажите плз) Итак:
1. При прослушивании TCP порта выскакивает ошибка SocketException Connection Reset (причем не сразу. Несколько сообщений получить получается).
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   public void main() throws IOException {
      ServerSocket s_out = new ServerSocket(PORT_IN);
      while(true){
         Socket socket_out = s_out.accept();            
           BufferedReader in = new BufferedReader(new InputStreamReader(
                  socket_out.getInputStream()));
           while (!in.ready()){
               String str = in.readLine();
               System.out.println(str);
           }
        }
   }


2. Может кто сталкивался с устройством GS902S.
Даже если настраиваю интервал отправки сообщений каждые 5 секунд, то все-равно отправляет хаотично. От 15 секунд до 3 минут.
Буду рад любым подсказкам:)
...
Рейтинг: 0 / 0
GPS Tracker
    #38157925
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оно пишет несколько сообщений и потом рвет, разделять сообщения нужно по спецсимволам # и *, символ конца строки там присутствует опционально, на это полагаться нельзя
...
Рейтинг: 0 / 0
GPS Tracker
    #38157926
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если мне разрешит партнер, могу предоставить вам недописанный проект под эти штуки
...
Рейтинг: 0 / 0
GPS Tracker
    #38157927
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть разрыв коннекта считать нормальным явлением и просто обработать эту ситуацию?
...
Рейтинг: 0 / 0
GPS Tracker
    #38157928
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагман, Если поделитесь- буду безумно Вам благодарен :)
...
Рейтинг: 0 / 0
GPS Tracker
    #38158022
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

danatrielто есть разрыв коннекта считать нормальным явлением и просто обработать эту ситуацию?

да
...
Рейтинг: 0 / 0
GPS Tracker
    #38158736
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если кому интересно:
Код: 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 Tracker
    #38159345
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо в таком коде печатать (все подряд) исключения.
Если получены ошибки чтения/записи (10053, 10054, 10060 и т.п.), максимум, что требуется - логирование ip-адреса клиента и сколько прочитано/записано и сколько должно было прочитаться записаться (если такая информация есть).
...
Рейтинг: 0 / 0
GPS Tracker
    #38159486
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Это понятно, исключения обработать это не основная цель). Основной целью было заставить программу стабильно получать данные с датчика
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
GPS Tracker
    #38569690
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, сразу сообщу что с java не работал, но по-видимому без нее нельзя.

Задача такая надо получать данные на сервере (unix, виртуальный) от GPS трекеров.
Поискал данный на PHP это можно сделать но будет не очень. Все делают это на JAVA.

У меня вопрос так как я небольшой знаток Unix, как я понимаю надо как-то файл, код которого приеден выше скомпилировать выложить на сервер и поставить что-то типа автозагрузки. Могли Вы мне прояснить данный вопрос. Заранее благодарен.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / GPS Tracker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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