因为我需要向服务器发送连续的命令,因为sendcmd为阻塞程序的运行,所以我用writeln来发,在DataAvailable来接收buffer,在这个事件里面做了两件事:
1.解析buffer,并存到本地。
2.判断buffer里是否有我预设的截止符,有的话则发下个命令。
  现在遇到了个很奇怪的问题,就是我单步调试的时候,能够读到完整的数据,但是只要一运行就只能读到一半的数据,当然,截止符也不会出现从而无法发出下条命令,现附上相关代码。procedure TForm1.IdTelnetDemoDataAvailable(Buffer: String);
begin
  GetDataFromServer(Buffer);//1.解析buffer,并存到本地。
  if (endstr<>'') and (((endstr<>'') and (Pos(endstr,Buffer)>0))
  or ((errorstr<>'') and (Pos(errorstr,Buffer)>0))) then
  begin
    if bscindex<=ListBox1.Items.Count-1 then
    RequestData(stepflag);//发送下条命令,stepflag为执行步骤
  end;  
end;现在的问题就是单步调试就没问题,一运行就读不全数据了,我都要崩溃了!