не могу получить hex данные с сокета, пробую:#!/usr/bin/perl
use IO::Socket;
use Symbol;
use POSIX;$server = IO::Socket::INET->new(LocalPort => 1025,
Type => SOCK_STREAM,
Proto => 'tcp',
Reuse => 1,
Listen => 10)
or die "making socket:$@\n";
while (1){
undef $/;
$client = $server->accept();
open (TOPP, ">>./hexlog") or die "Not open $!";
binmode(TOPP, q(:raw));binmode($client, q(:raw));
$client->recv($data, POSIX::BUFSIZ,0);
print "$data";
print TOPP "$data";
close TOPP;
}exit 0;
ASCI получает без проблем, а hex кекс :(
>не могу получить hex данные с сокета, пробую:
Из сокета ты получаешь данные. Байты.
Складываешь их в файл.
Если данные - текст открывая файл для просмотра ты увишишь там текст.
если данные - бинарны - ты увидишь там то же, что открывая бинарный файл.
если стоит задача в файл складывать hex коды того что получаешь - переменную $data нужно интерпретировать так
$data=~s/((.|\n))/sprintf("%.2X",unpack("C",$1)).' '/ge;
И будет тебе hex дамп получаемых данных
просто оно вообще ничего не пишет в файл,
данные идут, смотрю tcpdump -X -in eth0с той же железки ASCI данные принимаются нормально
выходит что на порт данные приходят,
а из сокета их вынуть не получается