|
Вопрос # 5 926/ вопрос открыт / |
|
Здравствуйте, эксперты!
Как отправить через ClientSock пакет в 16-битном формате?
Пробовал так:
Sock.Active := True;
FTextToSend :='003300330000044CB8D000000020'+StrToHex(sid)+'0005352E332E320009000100000003504E47';
Sock.Socket.Write(1);
снифер показывает что программа отправляет вообще левый код
 |
Вопрос задал: Alexsan (статус: Посетитель)
Вопрос отправлен: 2 февраля 2012, 19:34
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 5 февраля 2012, 19:56; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 2 февраля 2012, 19:42 [#1]:
Ну так, логично - отправляете не бинарные данные, а строку. Хотя я не знаю, что имеется ввиду под "в 16-битном формате".
Sock.Socket.Write(1); вышеуказанную строку не посылает...
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Alexsan (статус: Посетитель), 2 февраля 2012, 19:51 [#2]:
Sock.Socket.Write(1); я знаю что он не посылает строчку , строчку посылет FTextToSend :='003300330000044CB8D000000020'+StrToHex(sid)+'0005352E332E320009000100000003504E47';
в оригинале пакет выглядин так 003300330000044CB8D000000020'+StrToHex(sid)+'0005352E332E320009000100000003504E47 только данные для переменной sid вытягиваются из исходника на аккаунте после кодируется и отправляется , но снифер показывает что пакет выглядит так:
303333303033333030303030343443423844303030303030303230333233393332333233393336363436363331333033303338363636323632333836353337333733303632333433323332333733363339333733323634333333383030303533353245333332453332303030393030303130303030303030333530344534370A00
и под "16-битной" имеется ввиду "Шестнадцатеричная система счисления "
|
|
Вадим К (статус: Академик), 3 февраля 2012, 14:43 [#3]:
Вам нужна на "Шестнадцатеричная система счисления ", а просто бинарная отправка.
Заводите массив на нужное кол-во байт, записываете туда нужные байты, отправляете весь массив одной командой.
var a:array[0..99] of byte;
begin
a[0] := 0;
a[1] := $33; // это как раз в "16-ричной системе"
a[2] := 0; // это равно $0.
...
Sock.Socket.WriteBuffer(a, 10); // я не помню точно название этого метода, но он получает начало массива и длину
отправляемых данных.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Alexsan (статус: Посетитель), 3 февраля 2012, 19:37 [#4]:
чёто я не понял как отправить масив а через FTextToSend?
и зачем тут Sock.Socket.WriteBuffer(a, 10);?
|
|
Вадим К (статус: Академик), 3 февраля 2012, 23:51 [#5]:
отправить массив через строку - это сильно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Alexsan (статус: Посетитель), 4 февраля 2012, 00:01 [#6]:
хватит шутить FTextToSend процедура отправяющая данные для входа ,как мне сделать бинарную отправку с помощью этой процедуры
|
|
Alexsan (статус: Посетитель), 5 февраля 2012, 16:44 [#7]:
ну так что ктото ответит?
|
|
Вадим К (статус: Академик), 5 февраля 2012, 19:43 [#8]:
FTextToSend - это процедура??? судя по коду - это переменная или поле класса (судя по названию - это все таки приватное поле) строкового типа.
Отправить что то переменной нельзя. Поэтому и ответить никто не может.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Alexsan (статус: Посетитель), 5 февраля 2012, 19:56 [#9]:
эта строчка отправляет ключ к входу , а щас нужно отправить этот ключ ввиде масива ,как это сделать?
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|