User since
2004-09-06
458
Artikel
BenutzerIn
Hab nochmal ne Frage zu IO::Socket...
Mein Server reagiert irgendwann nicht mehr auf die Anfragen vom CLient... obwohl ich Timeout mit genügend luft eingebaut habe...
Kann das nur ein Timeout sein oder gibt es noch was anderes was dies verursachen kann?
Kann man ein unbegrenzten Timeout einstellen?:D
User since
2003-08-15
2653
Artikel
BenutzerIn
wie siehts denn mit send() bzw recv() aus ? kann man das alternativ zu nem neuen Modul empfehlen? Ich muss langsam an die Performance denken, ich binde schon 15 Module ein.... langsam wirds lahm :D
User since
2003-08-15
2653
Artikel
BenutzerIn
was ist gemeint mit $select->add(*FROM_SERVER) und $select->add($to_client) ?? was kommt da rein?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my $select = IO::Select->new();
my $server = IO::Socket::INET->new(
LocalPort => 2005,
type => SOCK_STREAM,
Reuse => 1,
Listen => 10
)
or die "Server läuft nicht: $@\n";
while(my $client = $server->accept()) {
foreach my $socket ($select->can_read(5)) {
print "$socket\n";
}
}
close($server);
User since
2003-08-15
2653
Artikel
BenutzerIn
warum muss das so kompliziert sein?
ich habs mittlerweile auch so geschafft:
my $socket;
while ($socket = $tcpsock->accept) {
my $line = <$socket>;
print $line;
print $socket "Hier spricht der Client";
}
close ($socket);
Wozu brauch ich jetzt das IO::Select ?
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=Froschpopo,05.04.2005, 02:00]aber ich könnte doch jeden neuen client forken oder ?[/quote]
wenn du das weniger kompliziert findest und du es performanter findest, klar!
aber überleg mal: für jede Verbindung willst du einen eigenen Prozess? Was ist wenn du 1000 clients hast? Hättest du Thread- oder Process-Pools, wäre ich einverstanden, aber 1000 mal forken, auweia!
wenn du forkst musst du trotzdem mit select arbeiten, bedenke das!
User since
2003-08-04
7321
Artikel
ModeratorIn
wieso?
was ist mit meinem vorschlag?
User since
2003-08-04
7321
Artikel
ModeratorIn
ja; ich würde es aber anstatt mit forks, lieber mit threads machen!!!
@sri: funzt POE mit Tk? (fork und Tk war immer schon ein Problem!)
User since
2004-09-06
458
Artikel
BenutzerIn
Quotehmmm...
ich glaube nicht, dass man einen Socket über prozess grenzen hinaus vererben kann... du könntest aber versuchen zu forken, Socket_new.pl mit require oder do einzubinden und dann die sachen mit dem socket zu tun...
Haste vieleicht mal ein kleines Beispiel?
Hab mit Fork nämlich null erfahrungen...
Wäre nett...
User since
2003-08-04
7321
Artikel
ModeratorIn
nee... wie gesagt; man kann einen socket nicht übergeben... zumindest glaube ich das!
User since
2005-02-18
357
Artikel
BenutzerIn
[quote=esskar,05.April.2005, 12:26]funzt POE mit Tk?[/quote]
Schaut so aus
Edit: Zwar größerer Abstand, aber trotzdem Cross-posting mit sri
Edit1: Damit der crosspost noch ein bißchen mehr Fleisch hergibt:
Randal L. Schwartz: "So, consider using POE and Tk together for your next GUI application."\n\n
<!--EDIT|pKai|1112719336-->
I sense a soul in search of answers.