[AD]
[AD]

КомпьюТоп - каталог компьютерных сайтов





































































 
    проект nICQ (урок №1) Шутка...
Назад Содержание Дальше
Делфи-проект nICQ в начале будет состоять из 3-х модулей: Types, Packet, Main.
В модуле Types находятся константы и объявлены некоторые записи.
В модуле Packet - процедуры и функции для записи/чтения FLAP-пакетов.(Большинство процедур из этого модуля просто адаптированы из других проектов ICQ).
Название модуля Main говорит само за себя.
Исходные коды проекта находятся здесь.

До того, как начать тестирование, вам следует ввести свой UIN, password, NickName.
Внесите эти данные в файл nICQ.ini:

  файл: nICQ.ini
[User]
Uin=199222333
Nick=My Nick
Password=mypass


... и можно запускать. Список контактов нам пока не нужен. Он появится позже. А сейчас будет вполне достаточно, если список контактов будет состоять только из вашего собственного UINа. Жмем на единственную кнопку, а в отладочном окне будет отображаться протокол работы. При выборе одного из пунктов Popup-меню, вызывается процедура icq_Login. Что в ней? Смотрим:

  unit Main;
procedure TForm1.icq_Login(Status : longint);
begin
// определяем свой IP-адрес Local_IP := Get_my_IP; // преобразуем его в DIM_IP
StrToIP(Local_IP,DIM_IP); // Запоминаем, какой будет наш статус
ICQStatus := Status; // если ClientSocket открыт, то закроем его
if CLI.Active then CLI.Close; // установим флажок isAuth, // это значит, что сначала мы коннектимся к серверу // авторизации. UIN и пароль передаются именно ему.
isAuth := true; // устанавливаем флажок isHDR, // он говорит нам о том, что, самые первые данные , // из ClientSocket следует интерпретировать как // FLAP-заголовок
isHDR := true; // заполняем поля Host и Port в ClintSocket, // адрес сервера авторизации: 'login.icq.com' // и его порт: 5190
CLI.Address :='';
CLI.Host := 'login.icq.com';
CLI.Port := 5190; // не забываем и про TMemo
M(Memo,'>>>>>>>>>> login.icq.com:5190 <<<<<<<<<<<'); // ... и собственно CONNECT
CLI.Open;
end;

(А вот и подходящий момент, чтобы вспомнить о вашем подключении к интернету. Проблемы с получением CONNECTa могут возникнуть, если вы выходите в интернет из LAN через PROXY-сервер. Все зависит от того, как он настроен. Если он предоставляет выход в интернет только для основных сервисов (http,ftp,smtp,pop), то тут уж извините. А если на нем присутствует нормальный маскарадинг, то все будет OK).

Итак, что же дальше..? Желанный CONNECT должен наступить немного раньше конца света :) Мы подсоединились к серверу авторизации и он первым выдаст нам пакет данных. Что делать? Как принять? Куда его засунуть? Об этом мой расказ на следующей странице.
Переворачивайте...

Назад Содержание Дальше