Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > IRC - алгоритм постоянного коннекта


Автор: sOckets 27.8.2006, 18:34
Здравствуйте , в общем я пишу IRC бота , вроде бы я научился конектиться , отправлять сообщения, отвечать на ПИНГи сервера....но ! я не могу удержать коннект , то есть допустим я запустил у себя бота , он висит на канале , выполняет свои функции , и тут у меня модем переподключился , бах и бот пропал , приходиться перезапускать его....помогите написать алгоритм постоянного коннекта.
Вот что я использую , скажите правильно или нет (хотя не пашет =\)
Код

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    while (1)
    {
        while(CONNECTED==false) CONNECT_TO_SERVER();                // Соединяемся с сервером
        RESTART_GET_();                                            // Читсим буфер приёма
        RESTART_POST_();                                            // Чистим буфер отпавки
        ADMIN=false;                                                    // Пока админа у нас нету
        recv(S, RESIVE, 1024, 0);                                            // Получаем данные от сервера
        IFPING(RESIVE);                                                // Если это PING то отвечаем
        ISADMIN();                                                    // Проверяем права админа
        if (IS_ADMIN==true)        // Проверка на команду
        {
            strcpy(COMMAND,strstr(RESV,"PRIVMSG ")+(11+strlen(CHANNEL)));// выдёргиваем команду
        }
        DO(COMMAND);                                                // выполняем команды
    }
return 0;
}



Автор: Artemon 6.9.2006, 16:29
Что-то я не понимаю, ты просто шаблон привел и хочешь что бы за тебя дописали функци, или у тебя что-то не работает?

Автор: sOckets 6.9.2006, 18:28
Функции я сам написал , мне нужен сам алгоритм. Решенее вроде нашёл , буду юзать не блокирующие сокеты , дело в том что если пропадает конект , бот висит на recv.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)