Einzelnen Beitrag anzeigen

supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#1

Indy TCP Server nur max ~100mal instanziierbar ?

  Alt 9. Mai 2004, 23:25
ich bekomme immer den fehler

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EThread with message 'Thread creation error: Für diesen Befehl ist nicht genügend Speicher verfügbar'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

wenn ich etwa 100 TIdTCPServer instanziieren will... die exception passiert immer in TidThread ( die von Indy benutzt wird )

hab schon versucht den stack zu vergrößern aber das brachte nix ( hat ja auch net so vield damit zu tun

hier bleibt der dinger stecken:

Delphi-Quellcode:
constructor TIdThread.Create(ACreateSuspended: Boolean);
begin
  // Before inherited - inherited creates the actual thread and if not suspeded
  // will start before we initialize
  FStopped := ACreateSuspended;
  FLock := TCriticalSection.Create;
  inherited Create(ACreateSuspended);
  {$IFNDEF VCL6ORABOVE}
    if (ThreadID=0) then begin
      RaiseLastWin32Error;
    end;
  {$ENDIF}
  try // <---- ERROR
    IncThread(SELF);
  except end;
end;
der code womit ich instanziiere:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
server: Tidtcpserver;
begin
for i := 1 to 5000 do begin

 server := Tidtcpserver.Create(nil);
 server.DefaultPort := i;
 server.Onconnect := form1.IdTCPServer1connect;
 server.OnExecute := form1.IdTCPServer1Execute;
 server.ListenQueue := 1; // <- hat auch nix gebracht
 server.Active := true;


end;
end;
wie kann ich jetzt ca 65000 server auf verschiedenen ports instanziieren?
oder geht das einfacher und ressourcensparender mit einer anderen componente ?
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat