Thread Buffer überlauf bei threads und Socket verbindunge (10 answers)
Opened by foilo at 2007-08-04 05:09

foilo
 2007-08-04 05:09
#97478 #97478
User since
2007-08-05
5 Artikel
BenutzerIn
[default_avatar]
Hallo lieber Perl-Community :)

nun muss ich leider auch mal nerven, da ich patu mit meinem Script nicht weiterkommt.

Ich möchte ein script erstellen was eine ipliste einliest, und mir den banner des Port's ausgibt. Da ich zeitsparen möchte, wird das alles per threads gelöst.

Das script ansich funktioniert einbahnfrei und ich bin soweit zufrieden, das einzige problem ist nun das ich beim ~100-150 Child ne Fehlermeldung von Windows bekomme: Fehlermeldung

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use threads;
use IO::Socket;

open(IPS, "$ARGV[0]");
my @target = <IPS>;
close(IPS);

my $process_this_many = @target;
my $max_threads = "20";
my $worker = 0;

while ($worker <= $process_this_many) {
for (my $x = 1; $x <= $max_threads && $worker <= $process_this_many; $x++) {
$thr = threads->new(\&sub1, "$target[$x]");
#print "Start $x $worker\n";
$worker++;
}

# Loop through all the threads
foreach $thr (threads->list) {
# Don't join the main thread or ourselves
if ($thr->tid && !threads::equal($thr, threads->self)) {
$data = $thr->detach;
#print "$data\n";
}
}
}

sub sub1 {
my $t = shift;
$con = IO::Socket::INET->new(Proto => "tcp", PeerAddr => "$t", PeerPort => "3306" , Timeout => 5) || die "\n+ Connection failed...\n";
while($ams = <$con>) { print $_ }
shutdown($con,2);

}



Ich dank schon mal alle die sich mit dem problem befassen und währe für hilfe mehr als nur dnakbar

View full thread Buffer überlauf bei threads und Socket verbindunge