Как реплицировать соединение Traccar Sever на устройство (протокол castel по TCP) в одном классе Java? (подключить, отключить кодировать и декодировать) - PullRequest
0 голосов
/ 08 апреля 2020
  1. ДЕЛО:

У меня есть TCP-клиент, который отправляет данные, и я хочу получить данные с моего сервера. Итак, все в порядке.

Я решил создать сервер сокетов на порту 9876 для прослушивания этого устройства (используя Java 8). Данные, которые я получаю, странные, когда я печатаю, они выглядят так: «慳 慳 慳», но теоретически поступающие данные должны быть шестнадцатеричными. Это пример пакета, который отправляет устройство (вход в систему):

40407F000431303031313132353239393837000000000000001001C1F06952FDF069529C91110000000000698300000
C0000000000036401014C00030001190A0D04121A1480D60488C5721800000000AF4944445F3231364730325F53205
6312E322E31004944445F3231364730325F482056312E322E31000000DF640D0A

Я хочу простым способом (одним классом, если это возможно) реплицировать соединение через устройство посредством castel (порт 5086 для Приложение сервера Traccar) почти в 6 методах:

  • Соединение
  • Отключение
  • Кодирование
  • Декодирование
  • Отправка пакета
  • Получить пакет

Моя цель - повторить это поведение с PHP. Я пытался с протоколами Websocket / HTTP, и в результате я не могу подключиться к нему. Я не могу услышать какой-либо пакет от устройства.

Итак, другой вопрос может быть: как я могу написать свой собственный протокол (Castel) для подключения сервера к этим устройствам?

Я просмотрел Traccar Код сервера, но он очень обширный. Я доказал устройство с ним, и он работает, но я не могу понять, как (на уровне кода).

Документация

  • Поток связи Castel

Comunication flow

  • Формат пакета протокола для загрузки загрузки

Protocol package format for download upload

  • Пример пакета входа в систему Login package

  • Я сделал простой сокет с PHP, и это то, что я слушал PHP socket listen

...