UDP接收的问题 急 请求帮忙

dengzhixing 2009-10-16 04:08:42
void __fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender,TStream *AData, TIdSocketHandle *ABinding)
{

}
我在这个事件里面接收数据, 请问我该如何接受发过来的 十六进制码? 并以十六进制显示在 Memo上
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mgsg 2009-10-17
  • 打赏
  • 举报
回复

void __fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender,TStream *AData, TIdSocketHandle *ABinding)
{
for(int i = 0 ;i<AData->Size;i++ )
{
char t ;
AData->Read(&t,1);
String str = IntToHex( t,2 );
Memo1->Lines->Add(str);
}
}


dengzhixing 2009-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mgsg 的回复:]
void __fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender,TStream *AData, TIdSocketHandle *ABinding)
{
        for(int i  = 0 ;i <AData->Size;i++ )
        {
                char t ;
                AData->Read(&t,1);
                String str = IntToHex( t,2 );
                Memo1->Lines->Add(str);
        }
}



[/Quote]



多谢兄台 但是这样做有一点错误 当对方发送的是FF 我这边显示的是"FFFFFFFF" 当对方发送的是23 我这边显示的是"23232323" 、、、、、怎么解决??
YeBinYe 2009-10-17
  • 打赏
  • 举报
回复
将上面的char *pchStr改为pchStr[MAX_PATH]比较合适.
YeBinYe 2009-10-17
  • 打赏
  • 举报
回复

void __fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender,TStream *AData, TIdSocketHandle *ABinding)
{
char *pchStr;
String str;
AData->Read(pchStr,AData->Size);
int num=atoi(pchStr);
str.printf("%x",IntToHex(num,8));
Memo1->Lines->Add(str);
}

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧