use Socket;
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname(\'tcp\'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
$msg = "\\x05\\x01\\x00";
send (SOCK, "$msg", 0);
sysread(SOCK,$answer_data,1024);
print_data($answer_data);
$msg = "\\x05\\x02\\x00\\x01\\xcd\\xbc\\x93\\x2e\\x09\\xf2";
send (SOCK, "$msg", 0);
sysread(SOCK,$answer_data,1024);
print_data($answer_data);
#FUNCTIONS
sub print_data() { # выводим данные в hex
my ($data)=@_;
my $i=0;
foreach(split(//,$data)) {
print unpack(\'H8\',$_)." ";
$i++;
if ($i eq 16) {
print "
\\n";
$i=0;
}
}
print "
\\n";
}
проблема: если делаю send (SOCK, "$msg", 0); больше 2-х раз скрипт вешается или оооочень долго думает.
как подольше пообщатся с сервером? запустил прогу которая через прокси сокс5 работает и снифером выдернул весь разговор
запрос - ответ:
05 01 00 - 05 00
05 02 00 01 cd bc 93 2e 09 f2 - 05 00 00 01 45 2f 67 8b 0e 40
05 02 00 02 - 05 00
05 01 00 03 0d 6c 6f 67 69 6e 2e 69 63 71 2e 63 6f 6d 14 46 - 05 00 00 01 45 2f 67 8b 0e 4d
... - ...
как этот разговор клиент-сервер реализовать?