title: What could be causing IdTCPServer to fail before reading all the data OnExecute event?
body: <p>This code work's fine when I send data across the LAN with an Indy client component, but when I receive data from an external application from the web, it's causing it to fail.  Could there be something on the client-side that is causing IdTCPServer to disconnect before all the data is read? An average of 33,000 characters are being sent by the client. Any suggestions?</p>
  
  <pre><code>procedure TFrmMain.IdTCPServer1Execute(AContext: TIdContext);
  var
    strm: TMemoryStream;
    RxBuf: TIdBytes;
  begin
    Memo1.Clear;
    strm := TMemoryStream.Create;
    try
      // read until disconnected
      AContext.Connection.IOHandler.ReadStream(strm, -1, true);
      strm.Position := 0;
      ReadTIdBytesFromStream(strm, RxBuf, strm.Size);
    finally
      strm.Free;
    end;
    Memo1.Lines.Add(BytesToString(RxBuf));
    AContext.Connection.IOHandler.WriteLn('000');
  end;
  </code></pre>
  
  <p>I also tryed this other code, in this case unlike the first code it only reads part of the data beeing sent. Is there a way to make the IdTCPServer Handler wait until all the data is collected?</p>
  
  <pre><code>procedure TFrmMain.IdTCPServer1Execute(AContext: TIdContext);
  var
    RxBuf: TIdBytes;
  begin
    RxBuf := nil;
    with AContext.Connection.IOHandler do
    begin
      CheckForDataOnSource(10);
      if not InputBufferIsEmpty then
      begin
        InputBuffer.ExtractToBytes(RxBuf);
      end;
    end;
    AContext.Connection.IOHandler.WriteLn('000');
    Memo1.Lines.Add( BytesToString(RxBuf) );
  end;
  
  
  </code></pre>