title: Indy server TIdTCPServer.OnExecute called continuously after client disconnect
body: <p>I have situation when I know how much bytes I expect to get from client (in this code it is 100). If client does't gives me 100 I don't need this packet at all, because it is corrupted.</p>
  
  <p>I have situation when client gives less than 100 bytes and disconnects. In this case I'm catching exception and everything would be fine except that after this exception my <code>ServerTCPExecute</code> is called for many times uncontinuously. There are no any other clients connected. Why it is so? If I do <code>TIdYarnOfThread(AContext.Yarn).Thread.Terminate;</code> everything goes fine. But I'm not sure it is good solution.</p>
  
  <pre><code>procedure Form1.ServerTCPExecute(AContext: TIdContext);
  begin
    try
      AContext.Connection.IOHandler.ReadBytes(b, 100, False);
    except
      //TIdYarnOfThread(AContext.Yarn).Thread.Terminate;
    end;
  end;
  </code></pre>