Einzelnen Beitrag anzeigen

hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#1

UDP-Versand mittels TUdpSockUtil - Probleme mit Error 10054

  Alt 5. Jul 2012, 14:46
Hallo Community!

Ich habe (wiedermal) ein Problem:
Ich habe eine TUdpSockUtil-Komponente, diese hat einen LocalPort, einen RemoteHost und einen RemotePort.
Diese dient sowohl dazu, dass verschiedene andere Programme dem Programm eine Msg schicken können,
als auch zum Versand von Msg an diese anderen Programme.
Dabei läuft er eine Liste mit IPs und Ports durch, setzt RemoteHost und RemotePort und ruft SendBuf auf,
ich geb euch mal ein Pseudo-Bsp ^^

Delphi-Quellcode:
  for i := 0 to ReceiverList.count - 1 do
  begin
    UdpSockUtil1.remotehost := ReceiverList[i].ip;
    UdpSockUtil1.remoteport := ReceiverList[i].port;
// if not UdpSockUtil1.Listen then
// begin
// UdpSockUtil1.close;
// UdpSockUtil1.open;
// end;
// if UdpSockUtil1.Listen then
    UdpSockUtil1.SendBuf(xBuf[0],length(xbuf));
  end;

(der auskommentierte Code war testweise einkommentiert ohne etwas zu bringen)
Mein Problem dabei ist folgendes:
Wenn eins der Programme, denen ich eine Msg schicken will, nicht läuft,
erhalte ich einen Error 10054, was mich ja auch nicht sonderlich verwundert.
Was mich dagegen wundert ist:
Wenn der Fehler ein paar mal gekommen ist, empfängt das Programm keine Msgs der anderen Programme mehr.
Also entweder müllt sich ein Buffer zu, den ich nicht freigeben kann oder .. ka, vlei macht Windows den Port dicht,
von dem ich sende, wenn ich ins Nirvana sende, ich weiß es nicht, auf jeden Fall ist es Mist,
weil wenn eins der Programme mal abkackt, ist das nicht weiter schlimm,
dann wird es von einem Überwachungsprogramm ggf abgeschossen und neugestartet,
aber dass ein anderes Programm, was noch läuft, keine Msgs mehr empfangen kann deswegen, ist ein kritischer Zustand!
Hat jmd eine Idee?
  Mit Zitat antworten Zitat