Ich kämpfe mit dem 98_DLNARenderer u. möchte die performance verbessern. Gelauscht wird auf Standardport 1900(SSDP), wo natürlich massenhaft Broadcastmessages ankommen. Ich möchte in der ReadFn frühzeitig die "uninteressanten" messages ausfiltern. Da ein Perl-Modul genutzt wird, "darf" ich aber nicht den buffer lesen(bzw. ich müsste lesen ohne dass der buffer gelöscht wird;finde aber keinen passenden Befehl). Ich habe dann getpeername($socket);
ausprobiert, aber da bekomme ich immer nur undefined zurück.
Jemand ne Idee wie ich mehr Infos über den Sender bekomme ohne den buffer durch ein read zu löschen ?
Was könnte bei getpeername($socket) schief laufen ? Code extrakt
my @sockets = $hash->{helper}{controlpoint}->sockets();
#check if new sockets need to be added to mainloop
foreach my $s (@sockets) {
#create chash and add to selectlist
.
.
$chash->{CD} = $s;
$chash->{FD} = $s->fileno();
$selectlist{$chash->{NAME}} = $chash;
}
ReadFn
my $socket = $hash->{CD};
my $sockaddr = getpeername($socket);
Grüße Markus