Thread Sofort antworten nach Socket-Connection (6 answers)
Opened by esskar at 2005-04-12 11:19

Froschpopo
 2005-04-12 11:05
#37855 #37855
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich möchte dem Client nach erstellen des neuen Sockets ne Nachricht übermitteln "Connected as froschpopo". Ich versteh aber nicht wo das problem liegt, denn das socket ist zu dem Zeitpunkt wo ich $socket->print() mache doch schon längst erstellt. Warum bekommt der Client also keine Antwort?

Wenn ich das $socket->print() später in dem else-Block mache, also wenn die Verbindung bereits besteht, dann funktioniert es ! Aber halt im if-Block nicht.
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
while(my @readable = $select->can_read) {
    foreach my $socket (@readable) {
        if($socket == $server) {
            print "Connected:Froschpopo\n";
            my $client = $socket->accept;
            $select->add($client);
            $socket->print("Connected as Froschpopo\n"); # hier ist das Problem
        } else {
            my $line = $socket->getline;
            if(defined $line) {
               
 $line =~ s!\r?\n$!!g;
               
 if(lc($line) eq "quit") {
               
     print "Client quits\n";
               
     delete_socket($select, $socket);
               
 } else {
               
     print "Client says: [$line]\n";
               
     $socket->print("$line\n");
               
 }
            } else {
               
 print "Connection closed by client\n";
               
 delete_socket($select, $socket);
            }
        }
    }
}
\n\n

<!--EDIT|Froschpopo|1113289603-->

View full thread Sofort antworten nach Socket-Connection