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

was ist an der syntax falsch??

Reader: 1


<< |< 1 2 3 4 ... 7 >| >> 62 entries, 7 pages
grey1987
 2007-11-26 12:25
#103002 #103002
User since
2007-11-21
83 articles
BenutzerIn
[default_avatar]
was ist denn an der syntax falsch und was macht dieser teil genau???
Code (perl): (dl )
1
2
3
4
5
6
7
getlinefromsocket($socket)
{
  my $buffer;
  my $char;
  while ($socken->recv($char,1)) 
    $buffer+=$char;
}
renee
 2007-11-26 12:29
#103003 #103003
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Es fehlen die geschweiften Klammern der while-Schleife. Und es muss $socket statt $socken heißen...

Was es macht? Der Name der Sub ist doch recht eindeutig, oder?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
grey1987
 2007-11-26 12:34
#103004 #103004
User since
2007-11-21
83 articles
BenutzerIn
[default_avatar]
ja stimmt,
es ließt doch aus dem buffer zeichen für zeichen, bis nichts mehr kommt, oder?
so sieht mein ganzes prog aus:
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
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";
my $line;
$socket->recv($line,3);
print "$line\n";
print "Sende ein CONNECT zum Server\n";
print $socket "CONNECT\n";
$socket->recv($line,3);
print "$line\n";
print "Sende ein DISCONNECT zum Server\n";
print $socket "DISCONNECT\n";
$socket->recv($line,3);
print "$line\n";
print "Sende ein END SESSION zum Server\n";
print $socket "END SESSION\n";
$socket->recv($line,3);
print "$line\n";

$socket->close();


getlinefromsocket($socket) {
  my $buffer;
  my $char;
  while ($socket->recv($char,1)) 
  {
    $buffer+=$char;
  }
}

und ich will jetzt nicht immer bei recv($line, 3) die Zeichenlänge hinschreiben, sondern ich will das von da unten verwenden!!
was muss ich denn da oben jetzt angeben? also anstatt recv??
grey1987
 2007-11-26 12:44
#103008 #103008
User since
2007-11-21
83 articles
BenutzerIn
[default_avatar]
bei diesem code (siehe oben)
kommt diese meldung:
Code: (dl )
1
2
3
syntax error at sock.pl line 27, near ") {"
syntax error at sock.pl line 34, near "}"
Execution of sock.pl aborted due to compilation errors.
nepos
 2007-11-26 12:46
#103009 #103009
User since
2005-08-17
1420 articles
BenutzerIn
[Homepage] [default_avatar]
Lass das
Code: (dl )
($socket)
weg oder ändere es in
Code: (dl )
($)
. So, wie du das in deinem Code hast, is das kein gültiger Prototyp für eine Perlfunktion.
Dann fehlt noch
Code (perl): (dl )
my $socket = shift;
als erste Zeile in deiner Sub, damit der Socket als Parameter eingelesen wird.
grey1987
 2007-11-26 12:53
#103012 #103012
User since
2007-11-21
83 articles
BenutzerIn
[default_avatar]
meinst du so
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
getlinefromsocket() {
  my $socket = shift;
  my $buffer;
  my $char;
  while ($socket->recv($char,1)) 
  {
    $buffer+=$char;
  }
}


geht aber auch nicht.
schrein mal bitte den kompellen code rein, wie es sein muss.

es kommt immer noch die meldung:
Code: (dl )
1
2
3
syntax error at sock.pl line 26, near ") {"
syntax error at sock.pl line 34, near "}"
Execution of sock.pl aborted due to compilation errors.
pq
 2007-11-26 13:00
#103013 #103013
User since
2003-08-04
12204 articles
Admin1
[Homepage]
user image
perlsub
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
grey1987
 2007-11-26 13:04
#103014 #103014
User since
2007-11-21
83 articles
BenutzerIn
[default_avatar]
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
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";
my $line;
$socket->recv($line,10);
print "$line\n";
print "Sende ein CONNECT zum Server\n";
print $socket "CONNECT\n";
$socket->recv($line,10);
print "$line\n";
print "Sende ein DISCONNECT zum Server\n";
print $socket "DISCONNECT\n";
$socket->recv($line,10);
print "$line\n";
print "Sende ein END SESSION zum Server\n";
print $socket "END SESSION\n";
$socket->recv($line,10);
print "$line\n";

$socket->close();

getlinefromsocket {
  my $socket = shift;
  my $buffer;
  my $char;
  while ($socket->recv($char,1)) 
  {
    $buffer+=$char;
  }
}


was ist mit der Meldung:
Code: (dl )
1
2
3
4
5
6
7
8
9
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
Can't call method "recv" on an undefined value at sock.pl line 30.

was muss ich denn jetzt mit recv machen??
renee
 2007-11-26 13:08
#103015 #103015
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Es fehlt noch ein "sub " vor dem "getlinefromsocket"...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
grey1987
 2007-11-26 13:14
#103016 #103016
User since
2007-11-21
83 articles
BenutzerIn
[default_avatar]
ey super, klappt schon ganz gut.

letzte frage hab ich noch.
um mein unterprogramm oben hin zu machen, muss ich ja &getlinefromsocket irgendwo hinschreiben?? wohin :-D ???
poste am besten den code.
<< |< 1 2 3 4 ... 7 >| >> 62 entries, 7 pages



View all threads created 2007-11-26 12:25.