Форум программистов, компьютерный форум, киберфорум
Теория и практика программирования
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 57
1

ICQ протокол

10.05.2010, 22:07. Показов 2601. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят а правильно что для того что бы отправить команду icq серверу (ну допустим там команду залогиниться) надо серверу отправить структуру с названием команды и ее параметрами это так если нет то подскажите пожалуйста как это делается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2010, 22:07
Ответы с готовыми решениями:

Защищённый протокол Client-Server
Доброго All! Стоит задача разработать шифрованный протокол связи Client-Server. Свойства...

Протокол подписания контракта
Добрый вечер. Подкиньте пожалуйста у кого есть информацию по протоколу подписания контракта. А то в...

Протокол x10
Протокол X10 система. Обесните систему взлома или как работает

Можно ли отправлять сообщения через протокол ICQ
Можно ли отправлять сообщения через протокол ICQ?

9
Эксперт С++
3189 / 870 / 39
Регистрация: 29.12.2008
Сообщений: 952
11.05.2010, 17:01 2
chel-0007, в общем смысле правильно. Если быть совсем точным, то пакет, сформированный определенным образом.
Вот курсовая, в которой неплохо изложен общий смысл.
А вот тут - описание таких команд для одной из версий протокола. Для других версий лучше порыться в гугле.
2
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 57
11.05.2010, 20:31  [ТС] 3
о спасибо а там код команды например это SNAC(...) да
0
Эксперт С++
3189 / 870 / 39
Регистрация: 29.12.2008
Сообщений: 952
12.05.2010, 09:37 4
chel-0007, опять лишь отчасти. SNAC - это не совсем команда, это тоже пакет, который несет определенную информацию. Вот нашел выдержку - лучше не скажешь:
Пакет в ICQ/AIM называется FLAP. FLAP в содержит в себе SNAC-пакет который, в свою очередь TLV–пакет, образуя своеобразную «матрешку».

SNAC несет в себе 2 значения: мажор и минор.

«Мажор» определяет семейство пакетов, а «минор» - конкретный пакет из этого семейства. По мажору и минору сервер и клиент производят разбор тех или иных пакетов и применяют к ним определенные инструкции.

TLV - это произвольные данные переменной длины: уин, пароль, текст и так далее. Обычно они являются частью SNAC’ов, но в некоторых случаях могут существовать и без них, например - пакет «login».

Основной принцип работы ICQ/AIM протоколов это, как нетрудно догадаться, передача и прием FLAP-пакетов между серверной и клиентской частью. Многие могут со мной поспорить и сказать, что работа протокола заключается в передаче и приеме SNAC-пакетов. Но это не совсем верное утверждение, так как FLAP-пакет инкапсулирует первым.
Вот из этой статьи, можно тоже почитать. Главное всё внимательно изучить, попробовать и всё получится
1
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 57
12.05.2010, 20:57  [ТС] 5
о спасибо те фантом ты ваще рульный чел кульную инфу дал а то я чет описание протокола этого читал на другом сайте но без примеров ваще чет никак не понять как точно действует это все. Спасибо тебе огромное. А можешь дать свою асю ну что бы там если че еще потом спросить. Пожалуйста.

Добавлено через 5 часов 43 минуты
ребят а почему при использовании функции
C++
1
2
3
4
5
6
7
8
9
static char *writel(char *buf, u_int32_t value)
 
{
 
*((u_int32_t *)buf)++ = htonl(value);
 
return buf;
 
}
у меня компилятор выдает ошибки:
10 C:\Dev-Cpp\icq\main.cpp `u_int32_t' has not been declared
12 C:\Dev-Cpp\icq\main.cpp ISO C++ forbids declaration of `value' with no type
C:\Dev-Cpp\icq\main.cpp In function `char* writel(char*, int)':
14 C:\Dev-Cpp\icq\main.cpp `u_int32_t' undeclared (first use this function)
помогите пожалуйста. А то уж очень хочется разобраться с этим протоколом
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
12.05.2010, 21:32 6
Цитата Сообщение от chel-0007 Посмотреть сообщение
10 C:\Dev-Cpp\icq\main.cpp `u_int32_t' has not been declared
Не сочти за хамство, но у меня возникают подозрения, что если ты с такими тривиальными вещами не можешь разобраться самостоятельно, то со всем остальным не разберёшься и подавно
0
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 57
12.05.2010, 22:01  [ТС] 7
не я понимаю типа эта переменная не продекларированна но она же у меня идет как аргумент функции
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
12.05.2010, 22:11 8
Неправильно вот ты понимаешь...
1
Автор FAQ
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
12.05.2010, 23:06 9
Цитата Сообщение от chel-0007 Посмотреть сообщение
не я понимаю типа эта переменная не продекларированна но она же у меня идет как аргумент функции
Не переменная, а её тип данных. Наверное нужно написать что то типа
C++
1
typedef unsigned int u_int32_t;
1
0 / 0 / 0
Регистрация: 07.07.2009
Сообщений: 57
16.05.2010, 21:08  [ТС] 10
Ребят а можно вот так сформировать flap пакет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
typedef struct TLV
   {
   unsigned short int Type;
   unsigned short int Lenght;
   char* value;
   }TLV;
          
   typedef struct FLAP_HDR
{
     unsigned char       Sign;
     unsigned char       ChID;
     unsigned short int  SEQ;
     unsigned short int  Len;
     TLV uin;
     TLV pass;
     TLV version;
}FLAP;
    int err,i,error;
    FLAP flap;
    flap.Sign=0x2A;
    flap.ChID=0x01;
    flap.SEQ=htons(0);
    flap.Len=htons(91);
    flap.uin.Type=0x01;
    flap.uin.Lenght=0x09;
    flap.uin.value="495631328";
    flap.pass.Type=0x02;
    flap.pass.Lenght=0x06;
    flap.pass.value="123456";
    flap.version.Type=0x03;
    flap.version.Lenght=0x0a;
    flap.version.value=;
если нет то подскажите пожалуйста где у меня ошибка
0
16.05.2010, 21:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2010, 21:08
Помогаю со студенческими работами здесь

Easy ICQ ActiveX - компонент для разработки собственного ICQ совместимого приложения.
Easy ICQ ActiveX - компонент для разработки собственного ICQ совместимого приложения. С помощью...

Как убрать ICQ из пуска? после закрытия окна программы, ICQ остается в пуске
Как сделать предосмотр на картинках включеный а на папках выключеный? Как убрать ICQ из пуска?...

Протокол маршрутизации и маршрутизируемый протокол
Добрый день! Насколько я понял эти понятия разные. Уважаемые вы можете привести примеры этих двух...

Http протокол: что подразумевается под словом "протокол"
Начал разбирать Http-протакол. Http- это протокол передачи гипертекста. 1 ) Не сильно понимаю что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru