Ув. товарищи люди. Имею следующую проблему:
клиент подключается к серверу к порту 39380 по tcp/ip и передает пакеты
вида: размер данных(4 байта)/код команды(4 байта)/идентификатор(4 байта)/данные(n байт)
сразу же после передачи сервер передает ответ вида:
размер данных(4 байта)/код команды(4 байта)/идентификатор(4 байта)/код ошибки(4 байта)
я пишу следующее:
#! /usr/bin/perl
use Socket;
$host="192.168.0.7";
$port="39380";
$nlength="\x0C\x00\x00\x00";
$ndatalength="\x0C\x00\x00\x00";
$ncommandid="\x06\x00\x08\x07";
$ntransactionid="\x01\x00\x00\x00";
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
send (SOCK,$nlength.$ndatalength.$ncommandid.$ntransactionid,0);
$nlength="\x10\x00\x00\x00";
$ndatalength="\x10\x00\x00\x00";
recv(SOCK,$nlength.$ndatalength.$ncommandid.$ntransactionid.$errcode,$nlength,0);
print $errcode."\n";
close(SOCK);
пакет, посылаемый на сервер доходит удачно и сервер корректно генерит ответ,
но вместо него я получаю пустые строки. =(
Где может быть ошибка?