|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 12 Apr 2001 20:53:57 To : Sergey Gernichenko Subject : Re: Сокеты и fork() -------------------------------------------------------------------------------- Здравствуй, Sergey Gernichenko. В твоём письме от Wed, 11 Apr 2001 15:43:03 +0400 написано: SG> Рад приветствовать тебя, All! SG> Помогите, плиз, разобраться... понять не могу... почему не работает SG> === Hачало Windows Clipboard === SG> #!/usr/bin/perl SG> use strict; SG> use IO::Socket; SG> my ($host, $port, $kidpid, $handle, $line); SG> unless (@ARGV == 2 ) {die "usage: $0 host port" } SG> ($host, $port) = @ARGV; $handle=IO::Socket::INET->>new(Proto => "tcp", SG> PeerAddr => $host, SG> PeerPort => $port) SG> or die "can't connect to port $port on $host: $!"; $handle->>autoflush(1); # и результат сразу же попадает туда SG> print STDERR "[Connected to $host:$port]\n"; SG> #die "can't fork: $!" unless defined SG> $kidpid = fork(); SG> print STDERR "Kidpid=$kidpid\n"; SG> if($kidpid) SG> { SG> print STDERR "[I am parent]\n"; SG> while (defined ($line = <$handle> )) { print STDOUT $line;} SG> print STDERR "[I am parent]:Sending kill Signal\n"; SG> kill ("TERM",$kidpid); # послать в порожденный процесс сигнал SIGTERM SG> } SG> else SG> { SG> print STDERR "[I am son]\n"; SG> while (defined ($line = <STDIN>)) { print $handle $line;} SG> } SG> === Конец Windows Clipboard === SG> В общем, это пример из книжки в эл. виде. SG> по идее это что-то вроде телнет клиента. SG> короче, когда коннекчусь к смтп серверу, коннект проходит, приглашение SG> получаю и вижу его... ввожу команду helo fff, жму Enter и все виснет SG> Если коннекчусь к локальному листенеру портов, то обнаруживаю, что вводимые SG> данные передаются после прерывания скрипта (закрытия соединения) SG> Как сделать, чтобы эти данные передавались сразу? flush? SG> Кстати, это так и должно, что fork() возвращает отрицательное значение?? SG> Чуть не забыл, Active Perl 5.6, Win NT4.0 Rus. Так он же эмулируется... -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- ifmail v.2.15dev5 * Origin: NTV Internet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/164830b1683f1.html, оценка из 5, голосов 10
|