Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10891[/thread]

IO::Select und IO::Socket

Leser: 2


<< >> 3 Einträge, 1 Seite
Gast Gast
 2007-11-26 09:07
#102990 #102990
hallo,
ich will mit einem Server verbinden:

Code (perl): (dl )
1
2
3
4
5
6
7
8
use strict;
use IO::Socket;
IO::Select;

my $socket = IO::Socket::INET -> new 
(PeerAddr =>'PC110197',
PeerPort => 1810,) 
or die "Konnte Socket nicht erstellen: $!\n";

klappt auch!

jetzt will ich aber noch CLIENT CREATE hischicken und die Anwort haben.
und die Antwort bekommt man irgendwie mit select.
weis jemand wie das geht?
grey1987
 2007-11-26 09:29
#102992 #102992
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
ich bin Gast....


also ich hab jetzt folgendes:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use IO::Socket;
use IO::Select;

$socket = IO::Socket::INET -> new 
(PeerAddr =>'PC110197',
PeerPort => 1810,) 
or die "Konnte Socket nicht erstellen: $!\n";
$socket -> print ("CLIENT CREATE");

$select = new IO::Select ($socket);
while(@ready = $select->can_read) {
  foreach $fh (@ready) {
    if ($fh == $socket) {
      $new = $socket -> accept;
      $select -> add ($new);
    }
    else {
      $select -> remove ($fh);
      fh -> close;
    }
  }
}

kann mir jemand paar vorschläge geben, wie ich das auch zu laufen bekomme.
denn wenn ich dieses Programm ausführe, passiert gar nix.
grey1987
 2007-11-26 11:06
#102995 #102995
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
ok hab jetzt folgendes
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use IO::Socket;
use IO::Select;

$socket = IO::Socket::INET -> new 
(PeerAddr =>'PC110197',
PeerPort => 1810,) 
or die "Konnte Socket nicht erstellen: $!\n";
$select = new IO::Select new;
print $socket "CLIENT CREATE\n";


while ($line = <$socket>) {
  print $line;
}

der gibt mir jetzt
Code: (dl )
ACK ETIMEOUT

aus.
ich will jetzt aber mit diesem select zeichen für zeichen verarbeiten.
bzw ich will nur dies ACK haben.
Aber das soll nicht mit split oder so gemacht werden.
ich will diese ACK verabeiten, bevor der timout kommt.
hat niemand eine idee?
<< >> 3 Einträge, 1 Seite



View all threads created 2007-11-26 09:07.