Schrift
[thread]10846[/thread]

Frage zu telnet (Seite 5)

Leser: 6


<< |< 1 2 3 4 5 6 >| >> 55 Einträge, 6 Seiten
grey1987
 2007-11-23 13:16
#102900 #102900
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
folgendes:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use strict;
use warnings;
use Net::Telnet;

my $telnet = new Net::Telnet (Timeout => 10, Errmode=>'return', Port=>1810, Prompt => '/[\$%#>] $/' );
my $fh = $telnet->dump_log( 'test.log' );

$telnet->open('PC110197');
$telnet->errmode( sub{ return @_ unless $_[0] =~ /eof/ } );

my @ausg = $telnet->cmd('CLIENT CREATE');
my $data = $telnet->buffer;
my ($ack, $other) = split /\0/, $data;
print "ACK: $ack -- OTHER: $other\n";

so ist das bei mir drin.
jedoch kommt diese meldung:
Code: (dl )
ACK: SCALAR(0x19703d4)


und ich brauch ja nur ACK.
renee
 2007-11-23 13:20
#102901 #102901
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Muss split /\0/, $$data; (mit zwei $ ) heißen...
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-23 14:01
#102903 #102903
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
ok ich hab das jetzt so:

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
use strict;
use warnings;
use Net::Telnet;

my $telnet = new Net::Telnet (Timeout => 10, Errmode=>'return', Port=>1810, Prompt => '/[\$%#>] $/' );
my $fh = $telnet->dump_log( 'test.log' );

$telnet->open('PC110197');
$telnet->errmode( sub{ return @_ unless $_[0] =~ /eof/ } );

my @ausg = $telnet->cmd('CLIENT CREATE');
my $data = $telnet->buffer;
my ($message, $other) = split /\0/, $$data;
print "$message";

if ($message eq "ACK")
{
  print "verbunden";
}
else
{
  print "nicht verbunden";
}

bzw. kann ich ja auch dieses
Code (perl): (dl )
print "$message";

weglassen

es geht auch alles!
kann ich jetzt aber etwas davon weglassen?
zb dieses $other, weil ich brauch das ja nicht mehr.. oder?
renee
 2007-11-23 14:16
#102905 #102905
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ja...
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-23 14:33
#102906 #102906
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
ok, hab jetzt noch bisschen erweiter, will nämlich jetzt noch einen Befehl eingeben, wenn die Antwort ACK war:

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
use strict;
use warnings;
use Net::Telnet;

my $telnet = new Net::Telnet (Timeout => 10, Errmode=>'return', Port=>1810, Prompt => '/[\$%#>] $/' );
my $fh = $telnet->dump_log( 'test.log' );

$telnet->open('PC110197');
$telnet->errmode( sub{ return @_ unless $_[0] =~ /eof/ } );

$telnet->cmd('CLIENT CREATE');
my $data = $telnet->buffer;
my ($message) = split /\0/, $$data;

if ($message eq "ACK")
{
  print "CLIENT CREATE BESTAETIGT!!!";
  $telnet->cmd('CONNECT');
  my $data1 = $telnet->buffer;
  my ($message1) = split /\0/, $$data1;

  if ($message1 eq "ACK")
  {
    print "\nCONNECT BESTAETIGT!!!";
  }
  else
  {
    print "CONNECT NICHT BESTAETIGT!!!"
  }

}
else
{
  print "CLIENT CREATE NICHT BESTAETIGT!!!";
}


was stimmt da nicht, weil die Ausgabe immer CONNECT BESTAETIGT ist, egal ob ich CONNECT oder was anderes hinschreibe.
bei was anderem als CONNECT, müsste die Meldung CONNECT NICHT BESTAETIGT erscheinen, tut es aber nicht!


kannst du mir noch erklären was dieses
Code (perl): (dl )
  my $data1 = $telnet->buffer;

macht?
grey1987
 2007-11-23 14:51
#102912 #102912
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
Also ich vermute, der sendet dieses CONNECT gar nicht da hin, zumidest steht nichts im log.
wieso?
renee
 2007-11-23 14:52
#102914 #102914
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
grey1987+2007-11-23 13:33:39--
kannst du mir noch erklären was dieses
Code (perl): (dl )
  my $data1 = $telnet->buffer;

macht?


Die Doku kann das ganz gut ;)

Das Problem ist, dass Du jedesmal den Puffer leeren musst wenn Du ihn ausgelesen hast...
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-23 15:04
#102917 #102917
User since
2007-11-21
83 Artikel
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
35
36
use strict;
use warnings;
use Net::Telnet;

my $telnet = new Net::Telnet (Timeout => 10, Errmode=>'return', Port=>1810, Prompt => '/[\$%#>] $/' );
my $fh = $telnet->dump_log( 'test.log' );

$telnet->open('PC110197');
$telnet->errmode( sub{ return @_ unless $_[0] =~ /eof/ } );

$telnet->cmd('CLIENT CREATE');
my $data = $telnet->buffer;
my ($message) = split /\0/, $$data;

if ($message eq "ACK")
{
  print "CLIENT CREATE BESTAETIGT!!!";
  $telnet->cmd('CONNECT');
  $telnet->buffer_empty;
  my $data2 = $telnet->buffer;
  my ($message2) = split /\0/, $$data2;

  if ($message2 eq "ACK")
  {
    print "CONNECT BESTAETIGT!!!";
  }
  else
  {
    print "CONNECT NICHT BESTAETIGT!!!";
  }

}
else
{
  print "CLIENT CREATE NICHT BESTAETIGT!!!";
}

hab den geleert, aber problem ist, dass jetzt nur noch CONNECT NICHT BESTAETIGT!!! ausgegeben
oder hab ich den an die falsche stelle gesetzt?

folgendes wird ausgegeben
Code: (dl )
1
2
Use of uninitialized value in string eq at prog4.pl line 23.
CLIENT CREATE BESTAETIGT!!!CONNECT NICHT BESTAETIGT!!!
renee
 2007-11-23 15:05
#102918 #102918
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst das *vor* das zweite cmd machen. Sonst löschst Du ja auch die Ausgabe des zweiten cmds!
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-23 15:09
#102921 #102921
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
so müsste es doch jetzt laufen:
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
use strict;
use warnings;
use Net::Telnet;

my $telnet = new Net::Telnet (Timeout => 10, Errmode=>'return', Port=>1810, Prompt => '/[\$%#>] $/' );
my $fh = $telnet->dump_log( 'test.log' );

$telnet->open('PC110197');
$telnet->errmode( sub{ return @_ unless $_[0] =~ /eof/ } );

$telnet->cmd('CLIENT CREATE');
my $data = $telnet->buffer;
my ($message) = split /\0/, $$data;

if ($message eq "ACK")
{
  print "CLIENT CREATE BESTAETIGT!!!";
  $telnet->buffer_empty;
  $telnet->cmd('CONNECT');
  my $data = $telnet->buffer;
  my ($message2) = split /\0/, $$data;

  if ($message2 eq "ACK")
  {
    print "CONNECT BESTAETIGT!!!";
  }
  else
  {
    print "CONNECT NICHT BESTAETIGT!!!";
  }

}
else
{
  print "CLIENT CREATE NICHT BESTAETIGT!!!";
}

aber es kommt immer noch die meldung:

Code: (dl )
1
2
Use of uninitialized value in string eq at prog4.pl line 23.
CLIENT CREATE BESTAETIGT!!!CONNECT NICHT BESTAETIGT!!!
<< |< 1 2 3 4 5 6 >| >> 55 Einträge, 6 Seiten



View all threads created 2007-11-21 12:13.