Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

[Indy]UDP schmiert nach ca. 8000 Sendungen ab

  Alt 24. Nov 2006, 14:30
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 Pakete hintereinander schicken.

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;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat