TIdTCPClient有没有一个功能可以检测缓冲区内有没有数据? 
这个检测的功能不会让cpu一直等

解决方案 »

  1.   

    我也遇到这问题了,还没找到好的解决的办法,DEMO里一直读缓冲区数据,就会造成假死
      

  2.   

    没用过IDTCP,我用的是TClientSocket,TClientSocket 我用这句可以取长度的,Socket.ReceiveBuf(Pointer(nil)^, -1);一直读缓冲区数据的时候 另外写一个线程操作吧,另一个线程加一个sleep,cup占用很低的
      

  3.   

    Connection.IOHandler.InputBuffer.Size
    Connection.IOHandler.CheckForDataOnSource
      

  4.   

    用线程接收,线程里放个循环:循环的条件是当程序未关闭,并处于连接状态时 
     
    while  not  Application.Terminated  and Form1.IdTCPClient.Connected  do   temp:=Form1.IdTCPClient.IOHandler.ReadLn();