首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

IdTCPServer 读取数据 异常

2012-12-16 
IdTCPServer 读取数据 错误客户端发送一组数据,63个,但是Server 接收到数据后, Edit 中显示的却只有 4 个

IdTCPServer 读取数据 错误
客户端发送一组数据,63个,但是Server 接收到数据后, Edit 中显示的却只有 4 个

 



void_fastcall TForm::IdTCPServer1Execute(TIdPeerThread *AThread)
{
 String sCommand;
 sCommand = AThread ->Connection -> ReadLn();
 Memo1 -> Lines ->Add(sCommand);
 Edit1 -> Text = sizeof(sCommand);

[最优解释]
sCommand是一个String对象, 你不能简单的用sizeof来获取其大小. 用String对象的Length方法才是王道, 如:

Edit1->Text = sCommand.Length();
[其他解释]
引用:
sCommand是一个String对象, 你不能简单的用sizeof来获取其大小. 用String对象的Length方法才是王道


还是不对啊,
Edit里 显示的变成 1 和 2 了, 1 跟 2 在不停的变换刷新
[其他解释]
你把每次收到的sCommand的内容贴出来看看。
[其他解释]
引用:
你把每次收到的sCommand的内容贴出来看看。


AA 55 C2 39 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 04

这个是客户端发过来的数据,服务端接收以后,先算出接收到的长度,然后在辨别字头AA 55 C2,然后进行数据处理,

我买的书里面介绍 indy 的太少了,网上没找到具体的例程,一些主要的方法也不怎么清楚,然后就用的 sizeof
[其他解释]
用 sizeof 的时候 Memo 里显示的是 一个中文和一个符号 "猆?" , 显示的是 4 ,
Length() 显示的是 零 ,隔一段时间显示另外 一个数字,抓不到,不是 1 和 2,我弄错了


[其他解释]
该回复于2012-11-06 10:13:42被管理员删除

热点排行