读书人

IdTCPServer 读取数据 异常

发布时间: 2012-12-16 12:02:32 作者: rapoo

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被管理员删除

读书人网 >C++ Builder

热点推荐