| 
| 
 | Вопрос # 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]:эта строчка отправляет ключ к входу , а щас нужно отправить этот ключ ввиде масива ,как это сделать? |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |