![]() |
[Indy]UDP schmiert nach ca. 8000 Sendungen ab
Hi Leute,
Ich muss zugeben, von LAN, IP etc. hab ich 0,1% Ahnung. Daher meine vermutlich richtig bescheuerte Frage: Ich habe mal einen UDP-Client geschrieben, der an eine meiner anwendungen UDP-Pakete schickt. Damit meine Anwendung mal so richtig ins Schwitzen kommt, wollte ich einfach mal 10000000 :mrgreen: Pakete hintereinander schicken. :wall: Nach ca. 8000 Paketen legt sich meine Testanwendung hin und meldet "10048 Socket in use" oder so. Mit einem IP-Monitor sehe ich, das doch ne ganze Menge Ports auf 'time_wait' stehen, was immer das heißt. Zwar nicht 8000, aber so ca. 4000... Wie schaffe ich das denn, das mir die TIdUDPClient-Komponente immer den gleichen lokalen Port nimmt, also mir den Testrechner nicht zumüllt? So verschicke ich ein UDP-Telegram:
Delphi-Quellcode:
(*
Var UDP: TIdUDPClient; <--- UDP ist auf dem Formular als Komponente, der Timeout ist auf "-2" *) Begin // UDP := TidUDPClient.Create(Nil); Try UDP.Host := IP; UDP.Port := 12999; UDP.Active := True; UDP.Send(s); // <-- s ist der String (ach was) UDP.Active := False; Finally // udp.Free End; End; |
Re: [Indy]UDP schmiert nach ca. 8000 Sendungen ab
Zitat:
Mit Hilfe der Eigenschaft Binding.Port setzen, hier weißt du den lokalen Port zu, der verwendet wird. Die Eigenschaft Port hingegen wird für den Remote-Port verwendet. Ansonsten ist bei Indy noch wissenswert, dass du hier ein IdAntiFreeze verwenden solltest. Es sorgt dafür, dass die von Indy geöffneten Sockets einen eigenen Thread blockieren und nicht den Hauptthread des Programms. Ist jetzt reine Spekulation, dass dein Problem hieraus resultiert, all zu weit ist auch mit meinen Kenntnissen nicht her auf dem Gebiet. Gruß Der Unwissende |
Re: [Indy]UDP schmiert nach ca. 8000 Sendungen ab
Hi,
Hier bist Du richtig. :thumb: Aha, ich werd mal die Bindings.Port-Eigenschaft auf einen festen Wert setzen, Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz