Thread Asynchrones Socket lesen (1 answers)
Opened by betterworld at 2004-07-13 16:16

weismat
 2004-07-13 15:49
#37194 #37194
User since
2003-08-18
142 Artikel
BenutzerIn
[default_avatar]
Ich habe ein Programm, daß asynchron von einem Socket lesen muss.
Ich schicke zunächst eine Nachricht und bekomme dann eine Antwort und anschließend eine beliebige Anzahl Nachrichten.
Meine Verarbeitung mit recv funktioniert auch, nur sorgt daß für eine sehr hohe Auslastung auf der Maschine.
Wie würde ich das Programmieren, damit ich mit einem Timeout lese und dann vielleicht nur alle 5-10 Sekunden prüfe, ob ich eine Nachricht bekommen habe.
Meine Receive Funktion sieht wie folgt aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub receive {
#no arguments- receives a new message
my($message, $j, $i, $length);
$message ="";
my $self=$_[0];
my $remote=$self->{remote};
$remote->recv($length, 10);
while ($length){
$remote->recv(my $message_block, $length > 4096 ? 4096 : $length);
$message .= $message_block;
$length -= length $message_block;
}

return $message;
}

Vielen Dank!

View full thread Asynchrones Socket lesen