|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 16 Jan 2002 11:46:11 To : "Serg N. Yakovlev" Subject : Re: IO::Socket ??? и fork()??? -------------------------------------------------------------------------------- Здравствуй, Serg N. Yakovlev. SNY> Привет! SNY> Вот пытаюсь пример воспризвести. SNY> Хочется, открыв соединение и передав команду, получить обратно ответ. Hа SNY> том конце киска с модемами и при подключении на порт линии и команде "at", SNY> дает "ОК" Hо в данном случае не происходит! Подскажите почему. Пример взят SNY> почти из примеров "Perl Cookbook". SNY> Код: ---------open #!/usr/bin/perl # # use strict; use IO::Socket; my SNY> ($host, $port, $comd, $kidpid, $handle, $line); SNY> $host = "192.168.1.29"; SNY> $port = "2002"; SNY> $comd = "at"; SNY> $handle=IO::Socket::INET->new( Proto=>"tcp", SNY> PeerAddr=>$host, SNY> PeerPort=>$port, SNY> Timeout=>5, SNY> Type=>SOCK_STREAM); SNY> #$handle->$autoflush(1); <-------------------------почемуто SNY> при отладке ругается??? SNY> #print STDERR "[Connect to $host:$port]\n"; SNY> die "can't fork: $!" unless defined($kidpid=fork()); SNY> if ($kidpid) SNY> { SNY> while (defined ($line = <$handle>)) SNY> { SNY> # print STDOUT $line; SNY> print $comd $line; Куда-куда ты ее печатаешь? SNY> } SNY> kill("TERM" => $kidpid); SNY> } SNY> else{ SNY> while (defined ($line = <STDIN>)) SNY> { SNY> print $handle $line; SNY> } SNY> } SNY> exit; SNY> ------------end SNY> С уважением Еще есть такая тонкость, что с STDIN ты получишь "at\n", а модему надо бы выдать "at\r". -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 Отправлено через сервер Talk.Ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6359e3829e7d.html, оценка из 5, голосов 10
|