Schrift
[thread]4314[/thread]

socket: Übergabe von Daten (Seite 3)

Leser: 3


<< |< 1 2 3 4 >| >> 33 Einträge, 4 Seiten
zipster
 2005-04-12 18:43
#37839 #37839
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
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
Froschpopo
 2005-04-05 01:39
#37840 #37840
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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
Froschpopo
 2005-04-05 03:11
#37841 #37841
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
was ist gemeint mit $select->add(*FROM_SERVER) und $select->add($to_client) ?? was kommt da rein?
Code: (dl )
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);
Froschpopo
 2005-04-05 03:46
#37842 #37842
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
warum muss das so kompliziert sein?
ich habs mittlerweile auch so geschafft:
Code: (dl )
1
2
3
4
5
6
7
8
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 ?
esskar
 2005-04-05 04:03
#37843 #37843
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[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!
esskar
 2005-04-05 04:42
#37844 #37844
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wieso?
was ist mit meinem vorschlag?
esskar
 2005-04-05 14:26
#37845 #37845
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
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!)
zipster
 2005-04-05 17:15
#37846 #37846
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Quote
hmmm...
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...
esskar
 2005-04-05 18:55
#37847 #37847
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
nee... wie gesagt; man kann einen socket nicht übergeben... zumindest glaube ich das!
pKai
 2005-04-05 20:09
#37848 #37848
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
[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.
<< |< 1 2 3 4 >| >> 33 Einträge, 4 Seiten



View all threads created 2005-04-05 03:31.