FilippoCSM Ответов: 0

Php socket - отправка массива байтов.. От VB


Здравствуйте, я пытаюсь дублировать функцию отправки сервера, написанную на vb, она мне нужна на PHP.
Часть VB-это :
Dim zSendBuffer(zTCPClient.SendBufferSize) As Byte

                BitConverter.GetBytes(iHandShake).CopyTo(zSendBuffer, 0)
                BitConverter.GetBytes(((uText.Length * 2) + 2)).CopyTo(zSendBuffer, 4)
                BitConverter.GetBytes(&HFEFF).CopyTo(zSendBuffer, 8)
                Encoding.Unicode.GetBytes(uText).CopyTo(zSendBuffer, 10)


                iSendeStatus = SendeStati.Sending
                zNetworkStream.Write(zSendBuffer, 0, (10 + (uText.Length * 2)))
                iSendeStatus = SendeStati.Processing


И я пытаюсь написать что-то на PHP, но даже если запись в scoket работает, я не получаю ответа.
вот структура пакета :
[----- Рукопожатие -----------] [-------- Länge ------------] [-B. O. Mark] [XML-строка]
0xA7 0x05 0xFE 0xAB 0x?? 0x?? 0x?? 0x?? 0xFF 0xFE 0x?? 0x?? ...

вот PHP-код я и пробую...

$message = $xml;
$iHandShake = hexdec("&HABFE05A7");
$iByteOrderMark = hexdec("&HFEFF");

$myBuffer = "";
$myBuffer = $iHandShake;
$myBuffer.=((strlen($xml)*2)+2);
$myBuffer.=$iByteOrderMark;
$myBuffer.=$xml;
$myBufferUTF8 = utf8_encode($myBuffer);

$byte_array = unpack('C*', $myBufferUTF8);


$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
// connect to server
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
// send string to server
socket_write($socket, $myBufferUTF8, strlen($myBufferUTF8)) or die("Could not send data to server\n");
// get server response
$result = socket_read ($socket, 65537) or die("Could not read server response\n");
echo "Reply From Server  :".$result;
// close socket
socket_close($socket);

}


Что я уже пробовал:

Попытка находится в описании сообщения

0 Ответов