PHP套接字 - 字节数组发送..来自VB [英] Php socket - byte array send.. From VB

查看:82
本文介绍了PHP套接字 - 字节数组发送..来自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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆