надо мне консоль некой программы вывести через сокет для клиентов. Написал программу: #!/usr/bin/perl -w use IPC::Open2; use IO::Socket; use strict; my $PORT = 9000; my ($pid1,$line,$server,$client); $server = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $PORT, Listen => SOMAXCONN, Reuse => 1); die "can't setup server" unless $server; print "[Server $0 accepting clients]\n"; my $pid = open2(*RD, *WR, 'bash'); if ($pid1 = fork) { close(RD); while($client = $server->accept()){ $client->autoflush(1); while (defined($line = <$client>)) { print "[$line ] <-\n"; print WR "$line\n"; } close $client; } close(WR); waitpid($pid1,0); } else { die "cannot fork: $!" unless defined $pid; close(WR); while(<RD>){ print "<child $_ >\n"; } } запускаю телнет, ввожу команды: [vilfred@mobile100 devel]$ telnet localhost 9000 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. ls ls -la вывод сервера, к которому подсоединяюсь клиентом: [vilfred@mobile100 devel]$ perl zxc.pl [Server zxc.pl accepting clients] [ls ] <- : command not found [ls -la ] <- ls: неверная опция -- Попробуйте `ls --help' для получения более подробного описания. я чего-то вообще глобально не воткнул, что не так-то?? там где то теряется перевод каретки, причем так глобально, что вместе с ним даже и сама команда, передаваемая из клиента :) Короче, непонятно вобщем.
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [perl] проброс проги в сокет (2008)
- Форум perl обработка stdout and stdin сторонней проги (2006)
- Форум Perl: проблема совместимости «use Socket;» (2004)
- Форум troubles with perl & tcp sockets (2006)
- Форум Perl & win32 (2005)
- Форум Задание на Stepik по Perl. Никак не могу понять, где загвоздка. HELP. (2020)
- Форум fork в perl`е (2006)
- Форум Perl. Сокеты. (2007)
- Форум клиент и сервер на Перл (2009)
- Форум Perl + FastCGI + nginx (2009)