在IdTCPServer1Connect事件中使用AThread.Connection.ReadLn()读取数据,再进行一些处理 ,最后 AThread.Connection.Disconnect。 
这样出现 接收到一定的次数后就无法接收数据了。
是AThread缓存区的数据溢出???如果是怎么处理。
如果不是,又怎么处理,谢谢大家。在线等待 。

解决方案 »

  1.   

    试试在OnExecute消息中readln、处理数据和AThread.Connection.Disconnect。
      

  2.   

    不行啊 ,和在IdTCPServer1Connect消息的效果一样
    把 AThread.Connection.Disconnect改成 AThread.Terminate倒是可以 ,只是速度慢了比较多 
    还有更好的方法么,比如怎么清空IdTCPServer1接收的数据
      

  3.   

    建议连接的断开由客户端TidTCPClient.disconnect来完成。
      

  4.   

    客户端的发完就 Disconnect了 。
    如果服务器端没有Disconnect 的话,可以接收很多数据,可是传输的速度会减慢(发送数据的间隔时间),如果有Disconnect 则发送速度很快。
      

  5.   

    在OnExecute事件中readln、处理数据和AThread.Connection.Disconnect。不要在OnConnection事件处理那些.
    另外,估计你代码在其它地方有错.
    不要在OnExecute事件中调用AThread.Terminate,它可能破坏INDY线程池管理机制