PHP套接字 - 字节数组发送..来自VB [英] Php socket - byte array send.. From VB
问题描述
您好,我正在尝试复制用vb编写的服务器发送函数,我需要它在PHP中。
VB部分是:
Hello, i'm trying to duplicate a server send function written in vb, i need it in PHP.
The VB part is :
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--- ---------] [-BO标记] [XML-String]
0xA7 0x05 0xFE 0xAB 0x ?? 0X? 0X? 0X? 0xFF 0xFE 0x ?? 0X? ...
这里我试用PHP代码...
And i'm trying to write somthing in PHP but, even if the write to scoket works, i receive no reply.
here is the dtructure of packet :
[----- Handshake -----------] [-------- Länge ------------] [-B.O. Mark] [XML-String]
0xA7 0x05 0xFE 0xAB 0x?? 0x?? 0x?? 0x?? 0xFF 0xFE 0x?? 0x?? ...
here the PHP code i try...
$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);
}
我的尝试:
尝试在消息的描述中
What I have tried:
The try is in the description of message
推荐答案
message =
message =
xml;
iHandShake = hexdec(& HABFE05A7);
iHandShake = hexdec("&HABFE05A7");
这篇关于PHP套接字 - 字节数组发送..来自VB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!