Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Вниз

Здравствуйте!   Найти похожие ветки 

 
alex-drob   (2008-06-01 12:10) [0]

Здравствуйте! У меня такой вопрос. хочу попробывать сделать подобие маил агента. ну изначально хотел для сотового, но на делфи мне проще разобраться. дошол до авторизации пользователя и стал на этом.
Вот описание как это работает.
http://agent.mail.ru/developers/licence.html
том много написанно в кратце то что меня интересует вот:

MMP бинарный протокол. Все числовые данные передаются как четырехбайтные целые НЕ в сетевом формате, т. е. первым идет старший байт, последним младший. Четырехбайтовые беззнаковые целые обозначаются UL.
Текстовые данные передаются с префексированной длиной, т. е. сначала UL, а потом строка (в кодировке windows-1251) длины UL без завершающего нуля. Обозначение в дальнейшем - LPS.
Тип данных UIDL используется только при работе с оставленными на сервере сообщениями. UIDL - последовательность из 8 символов из множества [a-z A-Z 0-9 _ - = +].

Пакет: Авторизация
Имя пакета: MRIM_CS_LOGIN2
Тип пакета: cs
Параметры:
LPS ## login ## email авторизующегося пользователя
LPS ## password ## пароль
UL ## status ## статус (см. MRIM_CS_CHANGE_STATUS)
LPS ## user_agent ## текстовое описание клиента пользователя, например "Mail.Ru Miranda Plugin v 1.0"


есть пример на пхп

$tmp = pack ("l", strlen ($login)).$login.pack("l", strlen ($pass)).$pass."\x22\x10\x00\x00".pack ("l", strlen ($client)).$client;

$packet = "\xEF\xBE\xAD\xDE".//CS_MAGIC
"\x0A\x00\x01\x00".//номер отправляемой команды
"\x03\x10\x00\x00". //тип пакета
"\x38\x10\x00\x00".//номер команды и/или ответа MRIM_CS_LOGIN2

pack ("l", strlen ($tmp)). // Длина данных
"\x00\x00\x00\x00". // Адрес отправителя
"\x00\x00\x00\x00". // Порт отправителя

"\x00\x00\x00\x00".//++++++++++++++++++++
"\x00\x00\x00\x00".//
"\x00\x00\x00\x00".//зарезервиравано
"\x00\x00\x00\x00".//+++++++++++++++++++++
$tmp; //собственно данные

так вот, не могу понять как это в делфи сделать.


 
alex-drob   (2008-06-01 12:10) [1]

Прошу прощения, тему не вписал.


 
Reindeer Moss Eater ©   (2008-06-01 12:15) [2]

формируешь пакет, устанавливаешь тсп соединение, посылаешь и читаешь данные.
если и это непонятно, то рано взялся за задачу.


 
alex-drob   (2008-06-01 12:22) [3]

я это понял! два пакета я послал, получил ответы. у меня вопрос как сделать с прикреплёнными данными в конце. когда нужно кроме структуры на сервер чтото отправить. я дошол до этого и всё!

есть

type
 mrim_packet_header_t = record
   magic: DWORD;
   proto: DWORD;
   seq: DWORD;
   msg: DWORD;
   dlen: DWORD;
   from: DWORD;
   fromport: DWORD;
   reserved: Array[0..16-1] of char;
 end {mrim_packet_header_t};

const
 CS_MAGIC = $DEADBEEF;

var
mph: mrim_packet_header_t;


mph я заполняю

а как теперь к этому сзади добавить данные и как эти вот данные сформировать не могу разобраться.


 
Reindeer Moss Eater ©   (2008-06-01 12:31) [4]

выделил память нужного размера.
скопировал в начало то что уже у тебя есть. сзади приклеил то что осталось. получился пакет


 
alex-drob   (2008-06-01 12:37) [5]

а как вот то что осталось сформировать?

например
логин: alex@mail.ru
пароль: alex
статус: MRIM_CS_LOGIN2 = $1038;
агент: маилагент

так вот, что в результате должно получиться?


 
Reindeer Moss Eater ©   (2008-06-01 12:46) [6]

у тебя же в описании приведена структура пакета.


 
alex-drob   (2008-06-01 12:57) [7]

я понимаю что она там есть! но я не понимаю как это зделать.

всё что мне пришло в голову это создать динамический масив типа byte и туда по символу запихивать всё! но ещё я немогу понять как должно выглядеть четырёхбайтовое число указывающие размер последующих данных?

например для строки alex@mail.ru 12 символов и как это записать?


 
ketmar ©   (2008-06-01 12:59) [8]

>[7] alex-drob (2008-06-01 12:57:00)
по-моему, ты рановать взялся за что-то сложнее hello, world. тебе не агентов пиать надо, а учить, что такое биты, байты, память, работа с динамической памятью, как это и зачем.

---
Understanding is not required. Only obedience.


 
alex-drob   (2008-06-01 13:02) [9]

а я это не отрицаю! но разве если разобраться как должна выгледеть строка, нельзя сделать програмку? я понимаю что это будет не суперпрога!


 
alex-drob   (2008-06-01 13:08) [10]

Ну а может подскажите, где можно почитать на эту тему. у меня просто в книге по делфи такого нет. там просто тупо перечислины функции для выделения копирования и освобождения памяти.


 
ketmar ©   (2008-06-01 14:49) [11]

>[10] alex-drob (2008-06-01 13:08:00)
в учебниках информатики за старшие классы. там рассказывают о битах, байтах и ты пы. или раньше рассказывали…

---
All Your Base Are Belong to Us


 
alex-drob   (2008-06-01 14:53) [12]

Учебники информатики разные! и когда я учился у нас небыло вобще учебников! и общепринетой программы по информатике до сих пор нет!


 
wl ©   (2008-06-01 16:08) [13]

это что, типа тяжелое детство, деревянные игрушки, прибитые к полу?

копировать память можно не только байтами, можно воспользоваться функциями типа CopyMemory(...);


 
alex-drob   (2008-06-01 16:44) [14]

да проблема не в детстве! а в образовании в россии. так как нет единой программы по информатике


 
Ум_ще   (2008-06-01 16:50) [15]


> wl ©   (01.06.08 16:08) [13]
> это что, типа тяжелое детство, деревянные игрушки, прибитые
> к полу?


Не у всех в коляске был деревянный монитор.


 
ketmar ©   (2008-06-01 17:31) [16]

у кого-нибудь курс ЮЗ сохранился, а? дайте страждущему.

---
Understanding is not required. Only obedience.


 
Админ   (2008-06-02 01:22) [17]

На королевстве где-то встречал.


 
Германн ©   (2008-06-02 01:40) [18]


> ketmar ©   (01.06.08 17:31) [16]
>
> у кого-нибудь курс ЮЗ сохранился, а? дайте страждущему.
>

Как таковой курс ЮЗ на ДМ не сохранился. Вроде года 2-3 назад искали.
Но есть уроки в лицее на королевстве. И не только ЮЗ.
http://www.delphikingdom.com/lyceum/seminar.asp


 
ketmar ©   (2008-06-02 08:02) [19]

>[18] Германн © (2008-06-02 01:40:00)
ну, я Королевство не посещаю. что вспомнил качественного отсюда — то сказал. кстати, я тогда протупил — а сам бы не отказался викифицировать статьи ЮЗ…

---
All Your Base Are Belong to Us



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
15-1211783198
БарЛог
2008-05-26 10:26
2008.07.13
FTP в новом эксплорере отображается списком (буквами)


15-1212066266
Dmitry S
2008-05-29 17:04
2008.07.13
OleLoadPictureFile "не видит" png


3-1201958594
Lamer666
2008-02-02 16:23
2008.07.13
Как узнать процент заполненности базы данных MSSQL


6-1177311252
аыпвапы
2007-04-23 10:54
2008.07.13
Клиент не отключается!!!


15-1211861704
vajo
2008-05-27 08:15
2008.07.13
как в меню проводника отключаеся "Свойства папки..."?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский