Thread Socket-Probleme...
(19 answers)
Opened by Oliver at 2019-10-24 15:05
Hi,
hier mal ein einfaches Testskript, das verschiedene Ausgabe-Varianten ausprobiert. Anstatt in einen Socket zu schreiben, wird eine Testdatei geschrieben. Diese Dateien können dann mit einem Hex-Editor gelesen und verglichen werden. Mein Test fand auf einem Linux System mit Perl 5.26.2 statt. Zum Lauf auf Windows müsste der Pfad für die Ausgabe-Dateien angepasst werden. 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 #! /usr/bin/perl use strict; use warnings; use 5.020; # data to "send" my @data = qw( 45 53 43 2F 56 50 2E 6E 65 74 10 03 00 00 00 00 50 57 52 3f 0D ); my $testfile = "/tmp/test.%d.dat"; sub write_test { my ( $num, @data ) = @_; my $file = sprintf $testfile, $num; open my $wh, ">", $file or die "open($file,w) failed: $!\n"; print $wh @data; close $wh or die "close($file) failed: $!\n"; } # see perldoc -f pack write_test( 1, map { hex } @data ); # print decimal value as text write_test( 2, pack( 'C*', map { hex } @data ) ); # print unsigned char (octet) value write_test( 3, pack( 'n*', map { hex } @data ) ); # print unsigned short (16-bit) in network (big-endian) order Als Resultat sollten drei Dateien rausgekommen sein: Code: (dl
)
1 # test.1.dat Demnach sollte das pack("C*", ... ) eigentlich schon das gewünschte bringen. Last edited: 2019-10-27 20:43:14 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |