Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Помогите найти ошибку в скрипте


Автор: aer0sm1th 13.12.2006, 14:05
Клиент-сервер.
Клиент подключается и передает команду.
Сервер ее выполняет и посылает ответ.
Клиент отключается.

Сервер
Код

#!/usr/bin/perl

use IO::Socket;


my $quit  = 0;
$SIG{INT} = sub { $quit++ };
my $port = shift || 3434;
my $sock = IO::Socket::INET->new(
                Listen        => 20,
                LocalPort    => $port,
                Timeout        => 60*60,
                Reuse        => 1                
                )
or die "Can`t create socket: $@\n";

warn "Waiting for incoming connections on port $port...\n";

while (!quit)
{

next unless my $session = $sock->accept;
my $peer = gethostbyaddr($session->peeraddr,AF_INET) || $session->peerhost;
my $port = $session->peerport;
warn "Connection from [$peer,$port]\n";

my $command = <$seesion>;
open (COMMANDFH, "$command |") or die "Can`t open $command: $!";

while ($msg_out = <COMMANDFH>) 
{
print $seesion $msg_out;
}

warn "Connection from [$peer,$port] finished\n";
close $session;

}

print STDERR;
close $sock;



Клиент
Код

#!/usr/bin/perl

use IO::Socket;


my $host = shift || localhost;
my $port = shift || 3434;
my $socket = IO::Socket::INET->new("$host:$port") or die $@;

my $msg_out = STDIN->getline;
print $socket $msg_out;
while (defined (my $msg_in = <$socket>))
{
print $msg_in;
}
$socket->close or warn $@;

Автор: rcdimon 15.12.2006, 17:56
И что эта программа неверно делает? или предлагаешь нам искать ошибку даже неизвестно какого рода

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