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;