|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.12.2015, 12:31 | #1 | |
Регистрация: 06.05.2010
Сообщений: 5
|
Работа с результатом Socket.ReceiveText
Есть сервер (доступа к нему не имею) и клиент на Андроиде.
Обмен командами, насколько я пока понял, происходит обычной строкой с набором внутренних команд. Например авторизация от клиента: Цитата:
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 А это, как она выглядит при любом выводе (на экран-ли, в файл-ли - без разницы): 2015-12-11 12-26-46 Form1.png Вопрос: как же ее получить для работы именно в таком виде, в котором она приходит, т.е. со всеми ее кавычками (' или ") и диезами (#)? Последний раз редактировалось 375297192202; 11.12.2015 в 12:36. |
|
11.12.2015, 13:05 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А она не приходит с диезами и кавычками. #8 обозначает при отображении байт с содержимым $08. Зачем для работы в таком виде получать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 11.12.2015 в 13:07. |
11.12.2015, 13:48 | #3 | ||
Регистрация: 06.05.2010
Сообщений: 5
|
Аватар, спасибо за ответ.
Цитата:
Цитата:
" - символ какого-то разделения #3 - следующие три символа полезной информации: 112 - логин #6 - соответственно 112112 - пароль. Только вот откуда еще двойка взялась? #7 - соответственно строка Android. Только опять лишний символ двоеточия #3 - соответственно строка версии программы 2.3 ОК. А как Вы видите работу с отправляемыми/получаемыми данными в этой ситуации? Может натолкнете на мысль. p.s.: Да, и кстати - не обратил внимания, на последней картинке используется логин/пароль 222. Прошу прощения за невнимательность. Последний раз редактировалось 375297192202; 11.12.2015 в 13:55. |
||
11.12.2015, 15:04 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
11.12.2015, 15:29 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
14.12.2015, 07:19 | #6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Это может быть и мусор, если программа работает со строками неаккуратно, с переаллокациями, а верный размер указывает сколько читать, остально просто проматывается до конца/следующего маркера. Это может быть и контрольная сумма и много ещё чего, у Вас выход либо разбирать до символа что к чему, либо подвергать программу обратному инжинирингу, либо, проанализировав небольшой набор разных вариантов, повторить более вероятное решение и работать с программой, при возникновении сложностей разбираться. Можно ещё брутить - составить пачку вариантов строк с разными этими непонятными символами и остальным идентичным содержимым и анализировать ответы, если будут разные - значимые символы, а если одинаковые - скорее всего мусор.
Чтобы отобразить эти строки почитайте о преобразовании в шестнадцетеричный вид, можно даже для себя написать простую функцию переводящую байт 08h в строку "#8" (и аналогично остальные нужные байты), если сильно нужно в этом виде. |
30.12.2015, 14:06 | #7 |
Регистрация: 06.05.2010
Сообщений: 5
|
Хоть и немного поздно, но хочу сказать спасибо всем откликнувшимся.
Методом "ненаучного тыка" что-то более-менее стало проясняться и сейчас уже могу говорить, что результат все-таки будет ))) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с 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 |