Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
1) Лучше наверно заканчивай команды на \r\n, хотя вроде... 20.09.04 05:05 Число просмотров: 1519
Автор: Killer{R} <Dmitry> Статус: Elderman
|
1) Лучше наверно заканчивай команды на \r\n, хотя вроде пофиг
2) Есть такая штука в ирц как PING-PONG - на каждое сообщение от сервера начинающееся на PING с параметром клиент должен отвечать PONG с таким же параметром. Причем некоторые серверы запрашивают PING сразу после коннекта и пока клиент не ответит понгом никак на него не реагируют. Некоторые пускают сразу.
3) На некоторых серверах нельзя зайти в канал послав такую пачку команд как ты написал - после регистрации юзером и ником следуюет подождать пока сервер пошлет MOTD И всякие другие служебные сообщения при конекте и потом джоинтся на каналы. Такую фигню я видел на одном виндовом сервере.
4)по поводу
>PRIVMSG #unart Всем привет, я - всего лишь
> бесполезный бот, которого написал n0xi0uzz. Я нихрена не > делаю, а просто вишу на канале\n в сообщения PRIVMSG (внутри сообщения) низзя юзать пробел с кодом 32. Вот низзя и все тут. Следует заменять их на \xa0, хотя на заход в канал это никак не отразится. Просто твоя мессага обрежется до первого пробела Ж)
|
<programming>
|
[Perl] IRC бот - в чем ошибка? 19.09.04 14:22
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
|
Решил сделать ирк-бота на перле, но не стал сначала делать его сложным и многофункциональным, т.к. не разу этим не занимался, сначала сделал все простенько. Тем не менее, когда я его залил на шелл и запустил ("perl bot.pl"), на указанном канале он так и не появился, хотя ошибок никаких выведено не было.
Не подскажете, в чем проблема?
Код:
#!/usr/bin/perl
use IO::Socket;
$log = "botlogs.log";
$sname = "irc.m-lan.ru";
$sport = 6667;
$nick = "BOTin0x";
$server=IO::Socket::INET->new( PeerAddr => $sname,
PeerPort => $sport,
Photo => tcp)
or die "ERROR!";
print $server "NICK $nick\n";
print $server "USER bot 0 0 :just a bot\n";
$response = <$server>;
chomp($response);
if ($response =~/(376|422)/i)
{
open LOG, ">$log";
print LOG "Сессия началась...\n";
print $server "JOIN #unart\n";
print $server "PRIVMSG #unart Всем привет, я - всего лишь бесполезный бот, которого написал n0xi0uzz. Я нихрена не делаю, а просто вишу на канале\n";
while ($response)
{
print LOG;
}
}
---
Заранее благодарен ;)
|
|
1) Лучше наверно заканчивай команды на \r\n, хотя вроде... 20.09.04 05:05
Автор: Killer{R} <Dmitry> Статус: Elderman
|
1) Лучше наверно заканчивай команды на \r\n, хотя вроде пофиг
2) Есть такая штука в ирц как PING-PONG - на каждое сообщение от сервера начинающееся на PING с параметром клиент должен отвечать PONG с таким же параметром. Причем некоторые серверы запрашивают PING сразу после коннекта и пока клиент не ответит понгом никак на него не реагируют. Некоторые пускают сразу.
3) На некоторых серверах нельзя зайти в канал послав такую пачку команд как ты написал - после регистрации юзером и ником следуюет подождать пока сервер пошлет MOTD И всякие другие служебные сообщения при конекте и потом джоинтся на каналы. Такую фигню я видел на одном виндовом сервере.
4)по поводу
>PRIVMSG #unart Всем привет, я - всего лишь
> бесполезный бот, которого написал n0xi0uzz. Я нихрена не > делаю, а просто вишу на канале\n в сообщения PRIVMSG (внутри сообщения) низзя юзать пробел с кодом 32. Вот низзя и все тут. Следует заменять их на \xa0, хотя на заход в канал это никак не отразится. Просто твоя мессага обрежется до первого пробела Ж)
|
|
|