Indy10更加稳定?
暂时不觉得我还用Indy9的,到10的移植太困难,放弃移植的想法indy 9目前仍在维护中的,并没有淘汰的
10的功能更多,效率据说也有提高,具体不清楚
只是知道目前很多应用仍然是9的,10的很少见

解决方案 »

  1.   

    >>在10中没有这个方法,只有一个Write,应该是该为
       IdTCPClient1.SendCmd();
       IdTCPClient1.GetResponse();IdTCPServer1.Bindings[1].Send()这个,indy 还提供了个参数将 string 转为 tbytes 的
      

  2.   

    9中,如果你在Client界面上放一个TIdAntiFreeze,然后在加一个Timer1来ReadLn,你在运行之后就会发现,你的Form是关不掉了。你用9没有遇到个这样的问题吗?
      

  3.   

    我说的都是指idTCPClient和Server,其他的不论
      

  4.   

    必须将记录体的数据转换成TIdBytes
    试一下这个
    function RawToBytes(const AValue; const ASize: Integer): TIdBytes;
    begin
      SetLength(Result, ASize);
      Move(AValue, Result[0], ASize);
    end;
      

  5.   

    感谢911的提示,问题解决了,结贴!Indy10需要把数据转换一下:var
    Buf: TIdBytes;
        ...
        Buf := RawToBytes(t_oUserInfo, SizeOf(t_oUserInfo));
        AContext.Connection.IOHandler.Write(Buf);
        ...
        SetLength(Buf, 0);
        IdTCPClient1.IOHandler.ReadByes(Buf, SizeOf(m_oUserInfo));
        BytesToRaw(Buf, m_oUserInfo, SizeOf(m_oUserInfo)