Leser: 1
|< 1 ... 3 4 5 6 7 >| | 62 Einträge, 7 Seiten |
1 2 3 4 5 6 7 8 9 10 11
sub getlinefromsocket{ my $buffer; my $char; my $max_buf_size = 3; while ( $socket->recv( $char, 1) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); print $char; } }
1
2
3
4
5
6
7
8
Sende ein Client Create zum Server
AC
Sende ein CONNECT zum Server
A
Sende ein DISCONNECT zum Server
K
Sende ein END SESSION zum Server
CK
1 2 3 4 5 6 7 8 9 10 11
sub getlinefromsocket{ my $buffer; my $char; my $max_buf_size = 5; while ( $socket->recv( $char, 1) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); print $char; } }
1 2 3 4 5 6 7 8 9 10 11
sub getlinefromsocket{ my $buffer; my $char; my $max_buf_size = 4; while ( $socket->recv( $char, 1) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); print $char; } }
1
2
3
4
5
6
7
8
Sende ein Client Create zum Server
ACK
Sende ein CONNECT zum Server
ACK
Sende ein DISCONNECT zum Server
ACK
Sende ein END SESSION zum Server
ACK
1 2 3 4 5
getlinefromsocket ($socket); #hier soll die Abfrage stehen #zb. #if (???? eq "ACK") # mach das und das....
grey1987+2007-11-27 09:21:23--ok ok, anscheinend ist die aufgabe nicht in perl lösbar.
grey1987+2007-11-27 09:21:23--hab jetzt aber noch ne andere frage.
wenn ich jetzt in meinem code ein if-Abfrage machen will:
nach dem hier
Code (perl): (dl )1 2 3 4 5getlinefromsocket ($socket); #hier soll die Abfrage stehen #zb. #if (???? eq "ACK") # mach das und das....
was geb ich denn jetzt bei den Fragezeichen ein??
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
sub getlinefromsocket { my $socket = shift; my $buffer, $char; my $max_buf_size = 3; # tu was mit $buffer while ( $socket->recv( $char, 1 ) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); # wenn mit last die Schleife verlassen wird, wird das print nicht ausgeführt! print $char; } # reiche den gefüllten Buffer weiter return $buffer; }
1 2 3 4 5
my $line = getlinefromsocket( $socket ); if ( $line eq 'ACK' ) { #tu was }
my $max_buf_size = 3;
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
use IO::Socket; use strict; my $socket = new IO::Socket::INET (PeerAddr =>'PC110197',PeerPort => 1810) or die "Konnte Socket nicht erstellen: $!\n"; $socket->autoflush(1); my $ausgabe; print "Sende ein Client Create zum Server\n"; print $socket "CLIENT CREATE\n"; my $line = getlinefromsocket ($socket); if ($line eq 'ACK') { print "es geht!"; } elsif ($line eq 'NACK') { print "geht nicht!"; } else { print "geht nix!"; } print "\nSende ein CONNECT zum Server\n"; print $socket "CONNECT\n"; my $line = getlinefromsocket ($socket); if ($line eq 'ACK') { print "es geht!"; } elsif ($line eq 'NACK') { print "geht nicht!"; } else { print "geht nix!"; } print "\nSende ein DISCONNECT zum Server\n"; print $socket "DISCONNECT\n"; my $line = getlinefromsocket ($socket); if ($line eq 'ACK') { print "es geht!"; } elsif ($line eq 'NACK') { print "geht nicht!"; } else { print "geht nix!"; } print "\nSende ein END SESSION zum Server\n"; print $socket "END SESSION\n"; my $line = getlinefromsocket ($socket); if ($line eq 'ACK') { print "es geht!"; } elsif ($line eq 'NACK') { print "geht nicht!"; } else { print "geht nix!"; } $socket->close(); sub getlinefromsocket { my $socket = shift; my $buffer; my $char; my $max_buf_size = 3; while ( $socket->recv( $char, 1 ) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); # print $char; } return $buffer; }
1
2
3
4
5
6
7
8
Sende ein Client Create zum Server
es geht!
Sende ein CONNECT zum Server
es geht!
Sende ein DISCONNECT zum Server
es geht!
Sende ein END SESSION zum Server
es geht!
1
2
3
4
5
6
7
8
Sende ein Client Create zum Server
es geht!
Sende ein CONNECT zum Server
geht nix!
Sende ein DISCONNECT zum Server
geht nix!
Sende ein END SESSION zum Server
es geht!
1 2 3 4 5 6 7 8
Sende ein Client Create zum Server geht nix! Sende ein CONNECT zum Server geht nicht! Sende ein DISCONNECT zum Server geht nix! Sende ein END SESSION zum Server geht nix!
grey1987+2007-11-27 09:21:23--ok ok, anscheinend ist die aufgabe nicht in perl lösbar.
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 36 37 38 39 40
use IO::Socket; use strict; my $socket = new IO::Socket::INET (PeerAddr =>'PC110197',PeerPort => 1810) or die "Konnte Socket nicht erstellen: $!\n"; $socket->autoflush(1); print "Sende ein Client Create zum Server\n"; print $socket "CLIENT CREATE\n"; getlinefromsocket ($socket); print "\nSende ein CONNECT zum Server\n"; print $socket "CONNECT\n"; getlinefromsocket ($socket); print "\nSende ein DISCONNECT zum Server\n"; print $socket "DISCONNECT\n"; getlinefromsocket ($socket); print "\nSende ein END SESSION zum Server\n"; print $socket "END SESSION\n"; getlinefromsocket ($socket); $socket->close(); sub getlinefromsocket { my $socket = shift; my $buffer; my $char; my $max_buf_size =4; while ( $socket->recv( $char, 1 ) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); print $char; } return $buffer; }
1
2
3
4
5
6
7
8
Sende ein Client Create zum Server
ACK
Sende ein CONNECT zum Server
ACK
Sende ein DISCONNECT zum Server
ACK
Sende ein END SESSION zum Server
ACK
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 36 37 38 39 40
use IO::Socket; use strict; my $socket = new IO::Socket::INET (PeerAddr =>'PC110197',PeerPort => 1810) or die "Konnte Socket nicht erstellen: $!\n"; $socket->autoflush(1); print "Sende ein Client Create zum Server\n"; print $socket "CLIENT CREATE\n"; getlinefromsocket ($socket); print "\nSende ein CONNECT zum Server\n"; print $socket "CONECT\n"; getlinefromsocket ($socket); print "\nSende ein DISCONNECT zum Server\n"; print $socket "DISCONNECT\n"; getlinefromsocket ($socket); print "\nSende ein END SESSION zum Server\n"; print $socket "END SESSION\n"; getlinefromsocket ($socket); $socket->close(); sub getlinefromsocket { my $socket = shift; my $buffer; my $char; my $max_buf_size =4; while ( $socket->recv( $char, 1 ) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); print $char; } return $buffer; }
1
2
3
4
5
6
7
8
Sende ein Client Create zum Server
ACK
Sende ein CONNECT zum Server
NAC
Sende ein DISCONNECT zum Server
AC
Sende ein END SESSION zum Server
AC
1 2 3 4 5 6
while ( $socket->recv( $char, 1 ) ) { # Abbruch wenn das gelesene ein Whitespace-Zeichen ist: Zeichenklasse [\ \t\r\n\f] # also Leerzeichen, Tab, Umbruch, vert. Tab last if ( $char =~ m/^\s$/ ); $buffer += $char; }
1 2 3 4 5 6 7 8 9 10
sub getlinefromsocket { my $socket = shift; my $buffer; my $char; while ( $socket->recv( $char, 1 ) ) { last if ( $char eq "\0" ); $buffer .= $char; } return $buffer; }
|< 1 ... 3 4 5 6 7 >| | 62 Einträge, 7 Seiten |