有一段WinSocket代码 BCB的,研究半天没转成DELPHI 的,哪位高人帮忙解决一下,谢谢!!
代码如下:void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
//当作为服务器一端读来自器客户端的数据时,激发该事件//
AnsiString rsv;
BYTE *pb;
//接收数据
rsv = Socket->ReceiveText();
//调用函数,解析数据包
ShowHex(rsv.Length(), rsv.c_str(), NULL);
pb = (BYTE*)rsv.c_str();
if ((pb[0] == 0xC1) && (pb[1] == 0x10))
{
memcpy(idbuff, &pb[2], 4);
//激活button1的事件,向终端发送余额
Button1Click(Sender);
}
}//==========================================================void __fastcall TForm1::ShowHex(int len, BYTE * buff, char *title)
{ //数据包拆分
AnsiString sh="";
if (title)
{
sh = title;
}
if (len && buff)
{
for (int cnt=0; cnt<len; cnt++)
{
sh += " " + IntToHex(buff[cnt], 02);
}
}
Memo3->Lines->Append(sh);
}
char *title 应该用PChar可以了吧
没搞懂的是BYTE * buff 在DELPHI里该用什么方式传递呢?
望高手指点
代码如下:void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
//当作为服务器一端读来自器客户端的数据时,激发该事件//
AnsiString rsv;
BYTE *pb;
//接收数据
rsv = Socket->ReceiveText();
//调用函数,解析数据包
ShowHex(rsv.Length(), rsv.c_str(), NULL);
pb = (BYTE*)rsv.c_str();
if ((pb[0] == 0xC1) && (pb[1] == 0x10))
{
memcpy(idbuff, &pb[2], 4);
//激活button1的事件,向终端发送余额
Button1Click(Sender);
}
}//==========================================================void __fastcall TForm1::ShowHex(int len, BYTE * buff, char *title)
{ //数据包拆分
AnsiString sh="";
if (title)
{
sh = title;
}
if (len && buff)
{
for (int cnt=0; cnt<len; cnt++)
{
sh += " " + IntToHex(buff[cnt], 02);
}
}
Memo3->Lines->Append(sh);
}
char *title 应该用PChar可以了吧
没搞懂的是BYTE * buff 在DELPHI里该用什么方式传递呢?
望高手指点
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货