Thread Binär-Buffer für socket syswrite aufbauen (5 answers)
Opened by meck at 2012-06-18 19:50

topeg
 2012-06-18 20:32
#159122 #159122
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
use warnings;

my @send= fillbuffer();

my $buf=pack('s*',@send);
my $len=@send;
print "<$buf> <$len>";
#  $ok=$client_socket->syswrite($buf,$len); 

sub fillbuffer { return ( STX(),0x11,0x12,ETX() ); }
sub STX() { "\002" };
sub ETX() { "\003" };


Wenn du warnings nutzen würdest würden dir die Meldungen bezüglich den schon kodierten Werten auffallen. Weiterhin wird es Probleme geben wenn du versuchst die Werte zu versenden. Ein "Short" hat zwei Byte, das bedeutet, dass nur die Hälfte versendet wird, wenn du die Länge es Arrays nimmst.
Oder willst du es als "Char" versenden das hat ein Byte.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Useqq=1;

my @send= fillbuffer();
my $buf=pack('s*',@send);
print Dumper($buf,length $buf);
#  $ok=$client_socket->syswrite($buf,length $buf);

sub fillbuffer { return ( STX(),0x11,0x12,ETX() ); }
sub STX() { unpack('C',"\002") };
sub ETX() { 3 };

View full thread Binär-Buffer für socket syswrite aufbauen