
30.10.2008, 16:47
|
|
Участник форума
Регистрация: 05.12.2007
Сообщений: 113
Провел на форуме: 252598
Репутация:
34
|
|
!
Вот так сказать последняя версия :-)
Код:
#!/usr/bin/perl
use threads;
use Socket;
$p = '139';
$sip = '192.168.0.';
for(1..255) {
$ip = '192.168.0.'.$_;
$thr[$_]=threads->create(\&conn, $ip, $p, SOCK)->join;
}
sub conn {
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($ip);
$paddr = sockaddr_in($p, $iaddr);
if(connect(SOCK, $paddr)) {
print $ip."\r\n";
close(SOCK);
return;
}
else {
close(SOCK);
return;
}
# send (SOCK, "", 0);
return;
}
посоветуйте как по грамотней распределять потоки потому что диапазон может быть не только от 0 до 255 но и больше а создавать 1000 потоков имхо не есть гуд )
Как лучше создовать сокет внутри фнкции или создать один а в функции юзать только connect ?
|
|
|