Thread was ist an der syntax falsch?? (61 answers)
Opened by grey1987 at 2007-11-26 12:25

grey1987
 2007-11-27 11:48
#103099 #103099
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
ok ich differenzier mal mein problem:
ohne if abfrage.

code
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
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;
}

Code: (dl )
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

schön und gut
aaaaaaaaber

bei diesem code: (anstatt CONNECT -> CONECT) (und dadurch wird anstatt ACK -> NACK ausgegeben)
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
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;
}

Code: (dl )
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

da fehlen jetzt ein paar zeichen... wie man sieht


kann man das beheben?

View full thread was ist an der syntax falsch??