Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > script fo IRC connected & работа с sockets


Автор: DiverD 19.3.2006, 18:06
Код

#!/usr/bin/perl 
use strict;
use IO::Socket;
use strict;
use warnings;
my $server = "127.0.0.1";
my $nick = "bot";
my $user = "Bofn localhost localhost: Bofn";
my $src_port = '4546';
my $dst_port = '6667';
my $channel = "#demo";
my $sock = new IO::Socket::INET(PeerAddr => $server,
                LocalPort => $src_port,
                                PeerPort => $dst_port,
                                Proto => 'tcp') or
                                die "Can't connect\n";
print $sock "nick $nick\r\n";
print $sock "user $user \r\n";

while (my $input = <$sock>) {
    unless(my $i = 0) {
    print $sock "join $channel\r\n";
    $i = 1;
    if($input =~ /test/) {
    print $sock "msg\r\n"; #
    }
    }
    print "$input\n";
}


Ситуация| #1:

скрипт конектиться,заходит на канал, НО! по вооду test должна выполнится комманда msg ,но этова не происходит,пишит типа неправильная комманда,а если я вставляю help вместо msg то она выполняется!



Ситуация #2:


Как грамотно можна открыть несколь сокетов к примеру на конект к IRC ???

Автор: nitr 20.3.2006, 00:27
=) Ско-ка раз говорилось, что лучше не создавать велосипед, если нужен полноценный бот или что-то ещё, то используй модули smile
http://search.cpan.org/author/JMUHLICH/Net-IRC-0.75/IRC.pm к примеру smile

и самое главное smile)) почитай RFC
нет такого
print $sock "msg\r\n";

а есть PRIVMSG smile
Код
print $sock "PRIVMSG $to :$msg\n";

Автор: DiverD 20.3.2006, 00:43
nitr спасибо братан=)
Ско-ка раз говорилось, что лучше не создавать велосипед, если нужен полноценный бот или что-то ещё, то используй модули а скока раз тебе писать в пм??=)

я не хочу модули использовать дополнительные!

Автор: nitr 20.3.2006, 01:43
Цитата

и самое главное smile)) почитай RFC
нет такого
print $sock "msg\r\n";

а есть PRIVMSG smile
Код
print $sock "PRIVMSG $to :$msg\n";


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