![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Здравствуйте! Решил написать Mail.Ru клиент. Вроде открытый протокол, но ничего не понятно!!!
![]() Единственное, что сделал - сформировал файл констант и типов методом перевода сишного заголовочника в делфовый юнит. =) Его можно взять в аттаче. А просьба, собсно, такая. Объясните как формировать пакеты. ![]() Присоединённый файл ( Кол-во скачиваний: 31 ) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
дал бы хоть ссылку на спецификацию...
-------------------- There are always someone smarter than you... |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Усе элементарно =). Пакет=Header(44 байта) + Data(Header.dlen).
Ну а дальше флаг в руки... =) |
|||
|
||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 9 Всего: 38 |
Например, я не видел и не планирую в ближайшее время. Пока что использую только icq, если надо будет менять - перейду на gtalk или jabber... Но никак не на mail-агент... -------------------- ![]() |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
VICTAR, это, конечно, всё понятно. И с математикой у меня хорошо. А КАК??? Как отправлять/принимать? Решил для пробы использовать два ClientSocketа. Одним получать сервер к которому коннектиться, другой - для всего остального.
С получением доступного сервера и отправкой HELLO пакета всё нормально, а вот принять MRIM_CS_HELLO_ACK не могу. Принять-то принимаю, но в нём данных нет... =( Делаю всё так:
Присоединённый файл ( Кол-во скачиваний: 37 ) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
VICTAR, это, конечно, всё понятно. И с математикой у меня хорошо. А КАК??? Как отправлять/принимать? Решил для пробы использовать два ClientSocketа. Одним получать сервер к которому коннектиться, другой - для всего остального.
С получением доступного сервера и отправкой HELLO пакета всё нормально, а вот принять MRIM_CS_HELLO_ACK не могу. Принять-то принимаю, но в нём данных нет... =( Делаю всё так:
Присоединённый файл ( Кол-во скачиваний: 15 ) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Примерно так
Но учти, что это не универсальный способ. За один прием у тебя может придти несколько пакетов, или вообще половина. Так что надо позаботиться о разбитии пакетов. PS не забывай про Data. Сейчас ты принимаешь только Header |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Спасиб. Сейчас затестю. Про Data помню, просто на сейчас я, как видишь, застопорился на HELLO пакете
![]() Добавлено через 6 минут и 12 секунд Спасибо! Код работоспособный! =) Пойду разбираться с Authorise и пынг пакетами. =))) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
Поснифай официального клиента, очень поможет.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Coderr |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Хочу, чтобы data типа Pointer указывал на первый элемент пришедших данных. Сделал так:
Не работает. ![]() Трассировка показала, что в Data попадает первые 4 байта, т.е. Magic. Подскажите, как получить в Data указатель на первый элемент, чтобы потом просто сдвигать указатель и читать то, что мне нужно? И ещё... Создал функцию для обработки UL блоков.
Только на строке сдвига указателя при компиляции вылезает ошибка. =( Как сдвинуть указатель правильно? Это сообщение отредактировал(а) Coderr - 7.11.2007, 08:42 --------------------
Кодинг - это стиль жизни! |
||||
|
|||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
В раздел "сети" вообще хоть кто-нибудь заглядывает?
![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
ne0n |
|
|||
PlayBoy ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 5.8.2005 Где: Н.Новгород Репутация: нет Всего: 11 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
ne0n, сам писал? Если сам, то респект, но не то что мне надо. =)
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
ne0n |
|
|||
PlayBoy ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 5.8.2005 Где: Н.Новгород Репутация: нет Всего: 11 |
Coderr, не, не сам, не помню откуда взял его, но точно помню что он за 10 баксов продаеться в электонных магазинах
![]() |
|||
|
||||
Coderr |
|
||||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Блин. Никак не получается... От указателей уже башка едет...
![]() Помогите написать основные функции ивзвлечения/добавления UL, LPS данных создания и отправки пакетов. Использую компонент TClientSocket. Ниже привожу код, который получился у меня: Структура заголовка пакета:
Создание заголовка пакета:
Добавление UL блока:
Добавление LPS блока:
Извлечение UL блока из принятых данных:
Функцию извлечения LPS блока из принятых данных я ещё не писал. Вот так я принимаю данные:
А вот так я создаю пакеты:
И ещё один вопрос напоследок. Иногда сервер меня дисконнектит. Это связано с тем, что я шлю ему неправильный пакет? ЗЫ Помогите, пожалуйста, а то я точно свихнусь... ![]() Присоединённый файл ( Кол-во скачиваний: 20 ) ![]() --------------------
Кодинг - это стиль жизни! |
||||||||||||||
|
|||||||||||||||
VICTAR |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Имхо ты тут много всего лишнего наделал.
Выделяй/освобождай память лучше с помощью New/Dispose. Чтение например UL
Остальное по аналогии Ну про прием я уже говорил. Так как у тебя сейчас сделано не пойдет. Да |
||||
|
|||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Спасибо Виктару сегодня опробую.
Добавлено через 3 минуты и 17 секунд Хотел только один момент уточнить... Вот у нас тело пакета хранится в массиве байтов. А чтоб достать/положить LPS строку, что надо делать? Присоединённый файл ( Кол-во скачиваний: 15 ) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Запись
Move(длина_строки, Packet^.Data[позиция], 4); Move(Строка[1], Packet^.Data[позиция], длина_строки); Чтение Move(Packet^.Data[позиция], длина_строки, 4); SetLength(строка, длина_строки); Move(Packet^.Data[позиция], Строка[1], длина_строки); |
|||
|
||||
Coderr |
|
||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Типы:
Сделал вот такие функции...
...и вот такие пакеты:
Принимаю данные теперь так:
... вылетаю после HELLO пакета... ![]()
по причине несовпадения типов. А вот если задать тип так:
то всё нормально работает, за исключением дисконнекта. Где я опять напортачил??? ![]() --------------------
Кодинг - это стиль жизни! |
||||||||||||
|
|||||||||||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
ReallocMem зачем? память ты уже выделил при создании пакета
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Чтобы изменять размер занимаемой памяти. Ну исправил я. Всё равно на хэллоу обырается... =(
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Не в обиду, но ты вряд ли понимаешь, что делаешь
Весь код не смотрел, но даже беглым взглядом заметно много ошибок и недочетов |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Хм... Да уж. Спасибо! New что-то не заметил. А с указателями работать я начал только вот месяц назад, но пока с ними у меня плохо...
Вобщем, мегаРЕСПЕКТ тебе. К серваку приконнектился, вродь норм. Правда, статус мой не отображается у других(т.е. я красный в КЛ). Сменить статус? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Свой статус ты посылаешь в MRIM_CS_LOGIN2
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Ну правильно!
Вот это так выглядит:
И по идее пакет отправился верно(меня не скинуло). Вот только на mail агенте не видно, что я в сети... Что я опть не так сделал??? ЗЫ На нахождение в списках виз/инвиз и игнор не сслыться, ибо эта версия проверялась отдельно. --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Не вижу у тебя TimerPing.OnTimer. Что там?
|
|||
|
||||
Coderr |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
ДА всё, я разобрался =))) Ошибка была примитивно простые.
Везде, где пакет был больше чем 44 байта(т.е. в Data что-то было), я делал так:
поменял на:
Исправил, работает. --------------------
Кодинг - это стиль жизни! |
||||||
|
|||||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Вопрос по смс.
а что за unknown? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Честно говоря не знаю, поснифь официального агента, но там вроде должен быть 0. Короче этот параметр не важен.
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Ну я делал так:
Ничего не происходит. ЗЫ Кстати, не подскажешь хороший снифер? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Ну, получаю ответ так:
В результате постоянно получаю 1, но ответы не доходят... =( --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Попробуй послать смс на другой номер
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
И другой номер пробовал! Что-то не идёт ничего. Снифал тремя снифферами - фарш какой-то...
![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
По ходу ещё появились вопросы...
Насчёт пакетов UIDL и получения контакт листа: 1) Как получить контакт лист? Пакет с таким номером команды не приходит!!! 2) UIDL нужно чисто копировать и передавать при удалении? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Мне приходит один, но большой! и код у него стрёмный...
Насчёт UIDL: Пакет UIDL используется для работы с оставленными на серваке сообщениями. В каждом таком пакете есть что-то полезное? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
разбивай его на пакеты. в нем как раз и найдешь пакет с контакт листом
Поправка: UIDL не пакет, а тип данных. После получения оффлайн-сообщения, ты должен скопировать его id(UIDL) и отослать пакет(MRIM_CS_OFFLINE_MESSAGE_DEL) с этим id для удаления этого сообщения с сервера. Само сообщение =) |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
И всё равно не понимаю... После пакета с командой MRIM_CS_USER_INFO приходят ещё два пакета
Packet body len: 1498239028 Command: $79367434 Packet body len: 4159957998 Command: $CF0A0A34 Packet body len - это длина тела пакета после заголовка Command - код команды Как мне из этой каши вытащить КЛ? И почему не приходят Offline сообщения, которые специально посылал самому себе для проверки с Mail.Ru Агента? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Вот сорсы
Это сообщение отредактировал(а) Coderr - 13.12.2007, 20:11 Присоединённый файл ( Кол-во скачиваний: 50 ) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Хм... Да, подзабыл. Только как об этом позаботится?
![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Считывай сначала во временный буфер, затем разбирай по пакетам. Сначала читай заголовок, потом уже Body.
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
А как я узнаю что пакет полный?
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
||||
|
||||
Coderr |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Сделал так, создал глобальную переменную
Добавил условие:
А как мне прибавить к массиву пакет? Просто сделав Buf := Buf+Packet; не получится. Есть функция какая-нибудь? --------------------
Кодинг - это стиль жизни! |
||||
|
|||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Ну а как я считаю его во временный буфер? Если даже пакет приходит неполный, то срабатывает событие. А когда приходят остатки пакета - событие вызывается ещё раз. Я правильно понимаю?
Добавлено через 11 минут и 30 секунд Написал так:
Получил изнасилование доступа. ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Что-нибудь наподобии, остальное додумай сам
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Слуш, Виктар! Чё-то совсем ничего не получается. Я написал ахинею какую-то, теперь не могу в ней разобраться.
![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Может напишешь как это сделать правильно? Код приводить не буду. Он всё равно бессмысленный.
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Я написал примерный план действий. Тебе осталось только доделать.
|
|||
|
||||
Andrey_znet |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 22.4.2007 Репутация: нет Всего: нет |
А как осуществить поиск контактов?
|
|||
|
||||
Matematik |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 24 Всего: 50 |
Я так сделал с приемом пакетов
(базовый код взят у Coderr http://forum.vingrad.ru/index.php?showtopi...t&p=1347989 ) Читаю заголовок recv() не удаляя данные из буфера сокета (MSG_PEEK) Проверяю что все данные пакета пришли и читаю только один пакет. Если Пакет не один вызываю прием еще раз (GoAgain) Написано криво, просто для теста. Еще бы хорошо добавить проверку что пришел весь заголовок до того кае его считывать Socket.ReceiveLength>SizeOf(Header) и проверять что возвращает recv()
[hr] 2Andrey_znet Поиск делается легко например, поиск пользователя [email protected]
Прием результатов поиска
Это сообщение отредактировал(а) Matematik - 31.1.2008, 03:07 |
||||||||
|
|||||||||
Granata005 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.5.2007 Репутация: нет Всего: нет |
удалите пожалуйста
Это сообщение отредактировал(а) Granata005 - 23.3.2008, 23:07 |
|||
|
||||
Rodeon |
|
||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
По ссылке выше качаем компонент, в нем файлы:
client.dcu proto.dcu pworks.dcu base64.pas client.pas codes.pas proto.pas pworks.pas Делал в Delphi 7, под 2009 чето не получилось установить этот компонент. В делфях через меню Component\Install Component указываем путь к файлу client.pas, жмем ОК, в закладке Sample появился компонент MailClient - кидаем его на форму. Также кидаем TCPClient - он нам нужен будет что бы узнавать адресс на который в последующем будет коннектиться клиент! Кидаем кнопку и пару эдитов! В первый edit вводим свой емайл вида "имя@домен.ру" во второй edit вводим пароль к ящику! Настраиваем пару свойств для TCPClient: RemoteHost:=mrim.mail.ru; RemotePort:=2042; Настраиваем свойства для MailClient: MRIMHost:=mrim.mail.ru; MRIMPort:=2042; для кнопки делаем свойства onclick
Далее обрабатываем соеденение, если оно наступило
Затем еще Проходим авторизацию!
Конечное действие, если все прошло успешно, то подключение заканчивается загрузкой контакт листа
Как примеры: Отправка СМСок:
Edit14 и Edit15 соотвктственно телефон и само собщение! Допустим надо найти людей (со строковыми переменными как передавать не разобрался, майловсцы молчат): Первые три значения пустые - '' так и не понял как передать запрос текстовый, в каком формате! (0-любой пол, 1-мужчина, 2 -женщина) (возраст от) (возраст до) (город, береться по id из базы) (знак зодиака, от 1 до 12) (месяц рождения от 1 до 12) (день рождения от 1 до 31) (страна, опять же из базы, к примеру Россия код:24) значение -1 в числовых параметрах распознаеться как "любое зачение" как пример, что бы найти всех девушек в возрасте от 20 до 30 лет из россии надо передать строку
Все, ловим событие MailClient UserFound, приходит строка со всеми данными о пользователе За раз приходит только 1 найденный контакт, просто ставим событие, что как только находит сразу добавлять например в массив найденных, ищет за раз по 50 контактов, для следующего поиска еще раз отправлячем запрос на поиск.
Таким путем будет в мемо добавленно 50 найденных контактов! В прикрепленном компоненте кажись урезанный вариант для рассылки СМСок, но в инете видел полный такой же компонент с указанием где и что именно измененно и путем обратных изменений получаем готовый СМС спаммер, сам не скажу точно, правда или нет, так как СМС меня не сильно интересовало! Присоединённый файл ( Кол-во скачиваний: 62 ) ![]() |
||||||||||||||
|
|||||||||||||||
Rodeon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
||||
|
||||
Rodeon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 28.8.2008 Где: Россия, Ухта Репутация: нет Всего: нет |
Подправил поля поиска, теперь найденные данные соответствуют названиям полей.
Вот список полей: Username, Domain, Nickname, FirstName, LastName, Sex, Birthday, Zodiac, Country_id, City_ID, Location, Phone, mrim_status, status_uri, status_title, status_desc, ua_features Измененный клиент прикрепил! Осталось пока непонятным в какой кодировке выдаются поля статусов, у меня либо "???" либо пусто пока? Комментарий по status_desc: описание статуса (до 255 символов) Комментарий по status_title: заголовок статуса (до 16 символов) Комментарий по status_uri: STATUS_ONLINE - 'В сети' STATUS_AWAY - 'Отошел' STATUS_INVISIBLE - 'Невидимый' status_chat - 'Готов поболтать' status_dnd - 'Не беспокоить' status_0' - 'Отключен' status_1' - 'В сети' status_2 - 'Отошел' status_3 - ' => 'Невидимый' status_4 - 'Болею' status_5 - 'Дома' status_6 - 'Кушаю' status_7 - 'Где я?' status_8 - 'В туалете' status_9 - 'Готовлю' status_10 - 'Гуляю' status_11 - 'Я Инопланетный разум!' status_12 - 'Йа креветко!' status_13 - 'Я потерялся!' status_14 - 'Я сошел с ума!' status_15 - 'Йа утко!' status_16 - 'Играю' status_17 - 'Курю' status_18 - 'На работе' status_19 - 'На встрече' status_20 - 'Пью пиво' status_21 - 'Пью кофе' status_22 - 'Работаю' status_23 - 'Сплю' status_24 - 'Телефон' status_26 - 'В институте' status_27 - 'В школе' status_28 - 'Вы ошиблись номером' status_29 - ':-D' status_30 - ';-)' status_32 - '} ![]() status_33 - '8-)' status_34 - ':-(' status_35 - ':\'(' status_36 - 'В шоке...' status_37 - 'Злюсь!' status_38 - 'Диабло!' status_39 - '(_|_)' status_40 - 'Сердце' status_41 - 'Сплю' status_42 - 'Cool!' status_43 - 'Yo!' status_44 - 'Фига' status_45 - 'Fuck!' status_46 - 'Череп' status_47 - 'Ракета' status_48 - 'Осминог' status_49 - 'Коза' status_50 - 'Bad!' status_51 - 'Белка' status_52 - 'Звезда' status_53 - 'Музыка' Это сообщение отредактировал(а) Rodeon - 30.1.2012, 00:56 Присоединённый файл ( Кол-во скачиваний: 12 ) ![]() |
|||
|
||||
fucil |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 7.8.2011 Репутация: нет Всего: нет |
Вот блин везде битые ссылки перезалейте (
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |