Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с протоколом аськи 
:(
    Опции темы
Anton Vatchenko
Дата 13.11.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



Хочу сделать пару простых вещей. Хотелось бы получить ответ от специалистов.
Хотелось бы подсоединиться (все классы уже готовы - сокеты работают), отправить сообщение человеку из моего контакт листа, и получить еще сообщение...


--------------------
user posted image
PM MAIL   Вверх
Dray
Дата 13.11.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: 2
Всего: 6



Цитата(Anton Vatchenko @  13.11.2006,  14:31 Найти цитируемый пост)
все классы уже готовы - сокеты работают

Если все готово и работает, в чем проблема?


--------------------
忍者

user posted image
PM MAIL   Вверх
Anton Vatchenko
Дата 13.11.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



Я хотел сказать, что мне нужен протокол, который я прикручу к сокетам. То есть просто сокетам что-то передавать, и что-то читать, но что?


--------------------
user posted image
PM MAIL   Вверх
a_n_d_y
Дата 13.11.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: 1
Всего: 1



В инете я видел (и заюзал) компонент TICQClient, но он написан на Делфях... Так что, если ты пишешь на Билдере, то можно его использовать...

Компонент лежит тута
PM MAIL ICQ Skype MSN   Вверх
Anton Vatchenko
Дата 13.11.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: нет
Всего: -1



У меня немного получилось, но сервер все равно не отвечает мне. По полочкам разложу, проверьте, правильно ли?

Сервер мне шлет 2A, канал 1, два байта номера последовательности, размер, данные.
Это я беру и увеличиваю номер последовательности на 1 (кстати, все Word читаются задом-наперед - от старшего байта к младшему, не по-компьютерному?)
Я ему шлю 2A, канал 1, тот номер последовательности + 1, длина = 4, {0, 0, 0, 1}
А сервер рвет соединение и все!


--------------------
user posted image
PM MAIL   Вверх
Dray
Дата 13.11.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: 2
Всего: 6



Цитата(Anton Vatchenko @  13.11.2006,  15:37 Найти цитируемый пост)
кстати, все Word читаются задом-наперед - от старшего байта к младшему

Я в каком-то мануале читал что не всегда так. Для полной уверенности надо использовать функции:
htonl, htons, ntohl, ntohs, WSAHtonl, WSAHtons, WSANtohl, WSANtohs


--------------------
忍者

user posted image
PM MAIL   Вверх
Rover
Дата 15.11.2006, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2006

Репутация: нет
Всего: нет



К сожалению недавно icq.com внесли изменения в свой протокол передачи данных, и теперь, даже если твоя прога заработает, она не будет поддерживаться всеми клиентами icq.
Особенно актуально это для миранды, там вообще могут иероглифы вылазить.
Где можно надыбать обновлённые исходники с мануалом ?
PM MAIL   Вверх
BUGOR
Дата 15.11.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 12.3.2006

Репутация: 1
Всего: 16



Цитата

У меня немного получилось, но сервер все равно не отвечает мне. По полочкам разложу, проверьте, правильно ли?

Сервер мне шлет 2A, канал 1, два байта номера последовательности, размер, данные.
Это я беру и увеличиваю номер последовательности на 1 (кстати, все Word читаются задом-наперед - от старшего байта к младшему, не по-компьютерному?)
Я ему шлю 2A, канал 1, тот номер последовательности + 1, длина = 4, {0, 0, 0, 1}
А сервер рвет соединение и все!


Дык не правильноsmile В общем случае то, что ты называешь номером последовательности в icq протоколе называется SNAC, в icq протоколе есть 3 канала, 1,2 и 4. Первый используется как правило для служебных сообщений в клиентах или для отправки сообщений в offline, во всех остальных случаях используется второй канал, чтобы когла-либо использовался 4ый я не видел. Так вот протокол делит пакеты на части, т.н. TLV, наличие некоторых причём необязательно, каждый TLV характеризуется идентификатором и длиной. SNAC характеризиует характер операции, грубо говоря предназначение пакета.

В итоге мы имеем:

[заголовок пакета][общая длина][SNAC][номер канала][Заголовок SNAC'a][TLV пакеты]

Писал на память, поэтому могу ошибатьсяsmile

Что касается изменений, то они незначительные, по крайней мере мне до сегодняшнего дня всегда удавалось поправить TICQClient таким образом, чтобы он работал. Второе, изменения как правило влияют на работоспособность небольшого числа операций.
Ну а в остальном протокол ICQ закрытый, есть "отснифанная" версия, зовётся OSCAR, на ней в частности написаны все альтернативные клиенты.

http://iserverd.khstu.ru/oscar/ - вот имхо самое лучшее описание.
Есть опенсорс клиент на делфи - &RQ - http://pig.asechka.ru/rq/download/&RQ09417b.src.zip
Есть опенсорс клиент на С++ - miranda - где-то на http://sourceforge.net, ссылку потерялsmile
Есть опенсорс клиент на ассемблере - FAIM - http://wasm.ru/src/5/faim.zip
Компонент - http://sourceforge.net/projects/ticqlib


--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
BUGOR
Дата 15.11.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 12.3.2006

Репутация: 1
Всего: 16





--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.