Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi UDP - Indy - Socket Error #10004 (https://www.delphipraxis.net/65072-udp-indy-socket-error-10004-a.html)

NookShar 11. Mär 2006 21:18


UDP - Indy - Socket Error #10004
 
Hallo,

ich habe ein kleines Problem mit folgendem Programm. Immer wenn ich es beende und vorher was übers Netzwerk gemacht habe (UDP verwendet) krieg ich beim beenden den Socketfehler #10004 ausgegeben.

Ich versuche dabei alle Verbindungen im FormClose zu deaktivieren. Aber auch wenn dies nicht geschieht kommt der Fehler. Wo drann kann das liegen und wie kann ich das vermeiden?

Delphi-Quellcode:
procedure TForm2.Button4Click(Sender: TObject);
begin
  if not IdUDPServer1.Active then
    IdUDPServer1.Active := true;
   
  with IdUDPClient1 do
  begin
    if not Active then
      Active := true;
    Broadcast(idIPWatch1.CurrentIP, 10025)
  end;

end;

procedure TForm2.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
begin
  ListBox1.Items.Add(Copy(BytesToString(Adata), 0, length(Adata)));
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  IdUDPClient1.Active := false;
  IdUDPServer1.Active := false;
  IdIPWatch1.Active := false;
end;
alle INDY Komponenten werden mit Active := false gestartet

hatro70 11. Mär 2006 22:31

Re: UDP - Indy - Socket Error #10004
 
hilft vielleicht wenn du folgendes einbaust ( nicht getestet)

Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  IdUDPClient1.Active := false;
  IdUDPServer1.Active := false;
  IdIPWatch1.Active := false;
  // hinzugefügt ob try except nötig ist weiss ich nicht ich kapsle sowas aus sicherheitsgründen immer
  try IdUDPClient1.Disconnect; except end;
end;

hitzi 4. Mai 2007 14:19

Re: UDP - Indy - Socket Error #10004
 
Ich hab das gleiche Problem.

Ich setze den TidUDPServer auf Aktiv und später über ein OnClick Ereignis eines Buttons wieder auf Active := false. Genau bei dieser Anweisung erscheint die oben genannte Exception. Lasse ich das Active := false weg kommt die Exception beim Schließen des Programmes.

Kennt jemand eine Lösung dazu?

Hier nochmal der ganze Quellcode:
Delphi-Quellcode:
procedure TfrmMain.btnStartServerClick(Sender: TObject);
begin
  udpServer.Active := not udpServer.Active;
end;
Viele Grüße

gsh 23. Sep 2007 11:43

Re: UDP - Indy - Socket Error #10004
 
Hi
Hab des gleiche Problem
Gibts schon Lösungen?

Progman 23. Sep 2007 11:50

Re: UDP - Indy - Socket Error #10004
 
Kommen denn die Fehlermeldungen auch, wenn das Programm außerhalb von Delphi läuft?
Viele Indy-Kompos haben (leider) die Eigenschaft, wenn das Programm in der Delphi-IDE läuft, Fehler anzuzeigen, aber außerhalb von Delphi dann nicht mehr. Ist jedenfalls meine Erfahrung damit.

gsh 23. Sep 2007 12:09

Re: UDP - Indy - Socket Error #10004
 
hmm ne es wird nur mit debugger eine fehlermeldung angezeigt ... aber des ist schon komisch und nervend
Hat es den einen grund für die fehlermeldung oder ist des nur so eine art statusmeldung?

gsh 23. Sep 2007 17:51

Re: UDP - Indy - Socket Error #10004
 
Liste der Anhänge anzeigen (Anzahl: 1)
hmm blöde indys hab auch ein speicherleak wegen dennen

gsh 27. Sep 2007 19:05

Re: UDP - Indy - Socket Error #10004
 
*push*

T3rm1 28. Okt 2007 23:35

Re: UDP - Indy - Socket Error #10004
 
Gleiches Problem bei mir. Finde einfach keine Lösung!

TKC 29. Okt 2007 01:12

Re: UDP - Indy - Socket Error #10004
 
Hi,

habt ihr schon mal folgendes probiert :

Delphi-Quellcode:
udpServer.Active := False;
udpServer.Bindings.Clear;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz