Thread Binär-Buffer für socket syswrite aufbauen
(5 answers)
Opened by meck at 2012-06-18 19:50 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 }; |