Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> бот для irc, Разрыв соединения с сервером... 
:(
    Опции темы
NIV
  Дата 15.10.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите решить проблему!
Я пишу бота для irc, но возникла проблема,  бот через 3 мин разрывает соединение с сервером!
Заранее спасибо!
Код

program bot;

uses
  winsock,
  windows,
  sysutils,
  ShellAPI;

const
nick ='bot';
chanell='#bot'; // канал 
fin=#13+#10;

var
nick:string;// ник бота
S:TSocket;
D:WSAData;
A:TSockAddr;
Buf_r: array[0..1024] of char;//буфер...сюдя записывается все что приходит от сервера

//Посылка текста
procedure _sender(str:string);
var
i:integer;
begin
for i:=1 to Length(str) do
if send(s, str[i] , 1, 0) = SOCKET_ERROR then
exit;
end;

//Прием текста
procedure CheckAnswer;
var
Hpos: word;
Answer:integer;
begin
Answer:=Recv(S,Buf_r,sizeof(Buf_r),0);
if (Answer=SOCKET_ERROR) or (Answer=0) then
exit;
     Hpos:=pos('!HELP',Buf_r);//если есть команда отсылаем текст
      if Hpos >0 then
       begin
      _sender('NOTICE '+chanell+' : бла..бла...бла.бла' +fin);
        sleep(2000);
        Buf_r:='';
       end;
end;


//Процедура соединения с сервером
Procedure connected;
begin
if WSAStartup($101,D)<>0 then
exit;
A.sin_family:=AF_INET;
A.sin_addr.S_addr:=inet_addr(pchar('91.149.157.69'));
S:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if S=INVALID_SOCKET then
exit;
A.sin_port:=htons(6667);
if connect(S,A,sizeof(A))<>0 then
exit;
end;


//Процедура входа на канал и логирование
procedure Loging;
begin
_sender ('user'+' '+nick+' '+nick+' '+nick+' '+nick+fin);// логирование
_sender ('nick'+' '+nick+fin); // логирование
_sender ('join '+chanell+fin); // заходим на канал
Sleep(1000);
end;

////START PROGRAMM
begin
connected;
Loging ;
while true do
begin
CheckAnswer;
sleep (1000);
end;
end.


Это сообщение отредактировал(а) NIV - 15.10.2008, 18:17
PM MAIL   Вверх
Qu1nt
Дата 15.10.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нужно отвечать на команду PING.
Вот хороший пример irc-бота. WinApi + WinSock.
http://xproger.mirgames.ru/files/src/XiRC_src.rar

Это сообщение отредактировал(а) Qu1nt - 15.10.2008, 20:11
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

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


 




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


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

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