Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / GPS Tracker / 10 сообщений из 10, страница 1 из 1
19.02.2013, 18:23
    #38157875
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GPS Tracker
Всем доброго дня.
Есть задача получать данные с 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
19.02.2013, 19:02
    #38157925
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GPS Tracker
оно пишет несколько сообщений и потом рвет, разделять сообщения нужно по спецсимволам # и *, символ конца строки там присутствует опционально, на это полагаться нельзя
...
Рейтинг: 0 / 0
19.02.2013, 19:03
    #38157926
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GPS Tracker
если мне разрешит партнер, могу предоставить вам недописанный проект под эти штуки
...
Рейтинг: 0 / 0
19.02.2013, 19:04
    #38157927
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GPS Tracker
то есть разрыв коннекта считать нормальным явлением и просто обработать эту ситуацию?
...
Рейтинг: 0 / 0
19.02.2013, 19:05
    #38157928
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GPS Tracker
Лагман, Если поделитесь- буду безумно Вам благодарен :)
...
Рейтинг: 0 / 0
19.02.2013, 20:18
    #38158022
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GPS Tracker
danatriel,

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

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

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

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


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