大家好,我采用TIdTCPClient 接受服务端报文时候,如果长度大于8k左右,会接受不全,
请问这个是不是indy组件的限制,请问如何解决这个限制。谢谢。
请问这个是不是indy组件的限制,请问如何解决这个限制。谢谢。
解决方案 »
- 有没有一个函数在指的空里画一个矩形,并指定颜色。
- 请教隐式执行一个其他程序的问题?
- 这个是我在网上找到的一个用shell监控文件操作的例子,编译通过,但运行后,在注册shell时出现错误!请大家帮忙
- M := StrToIntDef(S, -1)其中:S: String;M:Integer这个语句实现什么功能?
- 报表的总页数如何显示?报表上的字段如果很长,怎样让它自动换行显示!
- 还是关于WORD操作的问题!
- 关于dbgrid的一个简单问题
- 小问题了。相信大家会的。
- 在线调查~!大家用DELPHI有什么好习惯?
- 谁可以告诉我这个算法?
- DELPHI中类的问题百分回送
- 跪求《delphi2程序设计大全》一书。
麻烦看看是否有问题:
通信:
//(3)接收
try
retstr := '';
//得到需要得到的数据包长度
retstr := CurrentReadBuffer;
mRevLen := StrToInt(trim(copy(retstr,2,6)));
retstr := Copy(retStr,8,Length(retstr));
//循环等待,知道获取到相应的数据包
fillchar(mRecvBuf,sizeof(mRecvBuf),#0);
while True do
begin
if Length(retstr)>=mRevLen then
break;
//读取相应的返回值
ReadBuffer(mRecvBuf,mRevLen);
retstr :=mRecvBuf;
end;
retxml := retstr;
except on E:Exception do
begin
errormsg := '与CS通讯读数据出错,原因为:'+E.Message;
Result := false;
Exit;
end;
end;
end; //end with IdTCPClient
我现在问题是超过8k 显示的报文是不全的,如果循环读的话具体该怎么处理呢?