Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.12.2015, 13:31   #1
375297192202
 
Регистрация: 06.05.2010
Сообщений: 3
Репутация: 10
По умолчанию Работа с результатом Socket.ReceiveText

Есть сервер (доступа к нему не имею) и клиент на Андроиде.
Обмен командами, насколько я пока понял, происходит обычной строкой с набором внутренних команд.
Например авторизация от клиента:
Цитата:
'b!'#8#1#$10#3#$18#$B'"'#3'112*'#6'1121122'#7'Android:'#3'2.3'
где: 112 - логин
112112 - пароль
Android - ну это более-менее понятно
2.3 - версия клиента

Переписываю клиента на XE10 для работы по Windows и нужно изучить протокол работы.
Эту строку (var s : string) я получил в режиме отладки (пауза и WatchLits), а вот если ее куда-нибудь выводить в состоянии "как есть" или пытаться с ней работать - она превращается в кракозябры.
Понимаю, что объяснение ситуации более чем сумбурное.
Может скриншоты помогут.
Это то, какая приходит строка:
Нажмите на изображение для увеличения
Название: 2015-12-11 12-23-14 Project1 - Delphi 10 Seattle - Unit1 [Stopped - Thread 6900].jpg
Просмотров: 3
Размер:	14.5 Кб
ID:	78491
А это, как она выглядит при любом выводе (на экран-ли, в файл-ли - без разницы):
Название: 2015-12-11 12-26-46 Form1.png
Просмотров: 47

Размер: 15.2 Кб
Вопрос: как же ее получить для работы именно в таком виде, в котором она приходит, т.е. со всеми ее кавычками (' или ") и диезами (#)?

Последний раз редактировалось 375297192202; 11.12.2015 в 13:36.
375297192202 вне форума   Ответить с цитированием
Старый 11.12.2015, 14:05   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,775
Репутация: 6606
По умолчанию

А она не приходит с диезами и кавычками. #8 обозначает при отображении байт с содержимым $08. Зачем для работы в таком виде получать?
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 11.12.2015 в 14:07.
Аватар вне форума   Ответить с цитированием
Старый 11.12.2015, 14:48   #3
375297192202
 
Регистрация: 06.05.2010
Сообщений: 3
Репутация: 10
По умолчанию

Аватар, спасибо за ответ.
Цитата:
#8 обозначает при отображении байт с содержимым $08.
Но ведь он какую-то нагрузку в программе несет ... Значит для чего-то нужен. Соответственно его нужно получить для дальнейшей работы?

Цитата:
Зачем для работы в таком виде получать?
Я так понял, что в комбинации "#3'112*'#6'1121122'#7'Android:'#3' 2.3' можно составить логику:
" - символ какого-то разделения
#3 - следующие три символа полезной информации: 112 - логин
#6 - соответственно 112112 - пароль. Только вот откуда еще двойка взялась?
#7 - соответственно строка Android. Только опять лишний символ двоеточия
#3 - соответственно строка версии программы 2.3

ОК. А как Вы видите работу с отправляемыми/получаемыми данными в этой ситуации?
Может натолкнете на мысль.

p.s.: Да, и кстати - не обратил внимания, на последней картинке используется логин/пароль 222. Прошу прощения за невнимательность.

Последний раз редактировалось 375297192202; 11.12.2015 в 14:55.
375297192202 вне форума   Ответить с цитированием
Старый 11.12.2015, 16:04   #4
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6832
По умолчанию

Цитата:
Только вот откуда еще двойка взялась?
Ты ее передаешь. Иначе это соль. Или что-то еще вставленное в пакет.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 11.12.2015, 16:29   #5
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,775
Репутация: 6606
По умолчанию

Цитата:
Но ведь он какую-то нагрузку в программе несет
Ни какой. Нужно при парсинге проверять содержимое байтов
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 14.12.2015, 08:19   #6
phomm
personality
Профессионал
 
Аватар для phomm
 
Регистрация: 28.04.2009
Адрес: Тюмень
Сообщений: 2,855
Репутация: 1511

icq: 421049471
skype: phomm-
По умолчанию

Это может быть и мусор, если программа работает со строками неаккуратно, с переаллокациями, а верный размер указывает сколько читать, остально просто проматывается до конца/следующего маркера. Это может быть и контрольная сумма и много ещё чего, у Вас выход либо разбирать до символа что к чему, либо подвергать программу обратному инжинирингу, либо, проанализировав небольшой набор разных вариантов, повторить более вероятное решение и работать с программой, при возникновении сложностей разбираться. Можно ещё брутить - составить пачку вариантов строк с разными этими непонятными символами и остальным идентичным содержимым и анализировать ответы, если будут разные - значимые символы, а если одинаковые - скорее всего мусор.

Чтобы отобразить эти строки почитайте о преобразовании в шестнадцетеричный вид, можно даже для себя написать простую функцию переводящую байт 08h в строку "#8" (и аналогично остальные нужные байты), если сильно нужно в этом виде.
phomm вне форума   Ответить с цитированием
Старый 30.12.2015, 15:06   #7
375297192202
 
Регистрация: 06.05.2010
Сообщений: 3
Репутация: 10
По умолчанию

Хоть и немного поздно, но хочу сказать спасибо всем откликнувшимся.
Методом "ненаучного тыка" что-то более-менее стало проясняться и сейчас уже могу говорить, что результат все-таки будет )))
375297192202 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Socket в Си gnomik13071992 Qt и кроссплатформенное программирование С/С++ 0 19.05.2012 10:32
NetPaint, работа с Socket-ми ИВэТэшка Общие вопросы Delphi 1 07.02.2012 11:53
Socket.Receivetext() и разделение текста Максим139 Помощь студентам 0 24.04.2011 13:51
Работа с сокетами (Socket.Data) SanekIrk Работа с сетью в Delphi 3 23.05.2010 16:12
Работа с Socket-ом c помощю WinAPI 69 region Помощь студентам 13 11.04.2008 17:22


11:04.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru