AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner ausfä
Thema durchsuchen
Ansicht
Themen-Optionen

UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner ausfä

Offene Frage von "torud"
Ein Thema von torud · begonnen am 22. Mai 2006 · letzter Beitrag vom 24. Mai 2006
Antwort Antwort
Seite 1 von 3  1 23      
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner ausfä

  Alt 22. Mai 2006, 21:11
Hallo Wissende,

ich habe folgendes Problem.

In einem lokalen Netzwerk von 12 oder mehr Rechnern gibt es einen SQL-Server, der bei Änderungen XML-Strings verteilt, welche die Clients per UDP erhalten und in ihrer Anzeige (TWebbrowser) aktualisieren. Das Ganze funktioniert ganz gut.

Das Problem besteht darin, dass es vorkommt, dass ein oder mehrere Rechner auf einmal keine Protokolle mehr verarbeiten, weil scheinbar die UDP-Komponente inaktiv ist. Ich habe folgendes eingestellt. Port ist 8091 und HOST 255.255.255.255. Die Property Activ steht schon bei Start auf True. Ich vermute, dass es auch zu Problemen kommt, wenn das Programm gestartet wird und Protokolle einlaufen.

Scheinbar ist das Problem so gravierend, dass davon auch andere Rechner betroffen sind, die bis zu diesem Zeitpunkt keine Probleme hatten.

Wenn das der Fall ist, kommt es vor, dass dann gleich mehrere Rechner das Protokoll nicht mehr verarbeiten. Ich habe an meiner Hauptverwaltungsapplikation auch einen Button eingerichtet, der einen String per UDP sendet, welcher die Clients dazu auffordert selbst eine Nachricht per UDP zu senden und der Hauptapplikation ihren Rechnernamen mitzuteilen. Nach dem Ausfall eines Clients waren von vormals 12 Clients nur noch 3 in der Lage ihren Namen zu senden. Die Clients senden auf dem Port 8090, also einem eigenen Port.

Nun meine Fragen.
Wie kann ich dieses Problem umgehen/lösen?
Macht es Sinn Active := True erst bei OnShow der Applikation zu setzen?
Kann es sein, dass ein Rechner gleich mehrere Rechner mit "runter reisst"?
Gibt es Ports, die besonders "stabil" sind?
Was kann sonst noch die Ursache für das hier vorliegende Problem sein?
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#2

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 15:55
Also da ich noch keine Antwort erhalten habe, werde ich mal schildern, was ich nun getan habe, um das Problem einzugrenzen und zu minimieren.

Der UDPServer wird erst 3 Sekunden nach dem OnShow des Hauptformulares Active:=True gesetzt. Damit will ich erreichen oder sicherstellen, dass einlaufende Protokolle die UDP-Komponente nicht direkt beim Start "deaktiviert".

Heute war also wieder ein grosser Livetest und 9 Clients liefen ca. 2 Stunden stabil und haben die verarbeiteten Daten ordentlich verarbeitet. Leider stieg dann irgendwann der erste Client aus, erhält also keine Daten mehr. Und direkt danach stieg der nächste aus. Zur Zeit sind nach 3 Stunden nur 7 da.

Wie würdet Ihr das lösen?

Soll ich vielleicht nen Timer einbauen, der 1 mal pro Minute den Aktivitätszustand prüft und notfalls die Komponente wieder aktiviert? Aber auf der anderen Seite muss es ja einen Grund haben, dass die Dinger immer wieder mal gern offline gehen.

Wird die Komponente vielleicht deaktiviert, wenn der DatenString zu gross ist, oder wird das nur der Überschuss abgeschnitten??

Ich würde mich über hilfreiche Kommentare freuen...
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:00
Hi,
Wenn das keine Ultraschnellen Verbindungen sein sollen, würd ich das ganze noch einmal mit TCP neu auflegen/ändern.
Bei TCP wird sichergestellt das Pakete auch ankommen.
Zudem solltest du das nicht mit OnSHow lösen, da dieses beim Programmstart u.U. mehrmals ausgefürt wird.

So far,
inh3r1ted
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#4

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:06
Das Problem ist, dass ich hier vor Ort nicht mehr kurzfristig auf TCP umstellen kann...
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:13
Des is blöd.
Ich würde erstmal sichergehen das sie überhaup non-active sind, indem du mit einem timer dies überprüfst.
Nimmst du Indy-UDP oder die Sockets? Wenn Indy, welche Version, 9 oder 10
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:27
Danke für Deine Antwort.

Ja, ich nehme die UDPClient und UDPServer von Indy. Wenn es läuft ist wirklich alles prima und falls mal EIN Protokoll nicht ankommt, ist das nicht so wild, aber das die Dinger gar nichts mehr machen, ist unschön. Ich werde auf jeden fall mal einen Timer den Zustand überprüfen lassen und schreibe mir mal bei OnClose den Zusatand in eine Ini, um sehen zu können, ob es wirklich daran liegt.

Noch einen Vorschlag?

Ich habe auch die Freeze von Indy mit drauf, weiss aber nicht genau, was die eigentlich tun soll....
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:30
Du meinst Anti-Freeze
Schau mal in die Hilfe, da stehts.
Ich würde auch noch überprüfen wie weit/unweit die pakete kommen.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#8

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:32
Zitat von inherited:
Du meinst Anti-Freeze
Schau mal in die Hilfe, da stehts.
Ich würde auch noch überprüfen wie weit/unweit die pakete kommen.
Werde ich tun. Aber wie meinst Du das mit dem wie weit sie kommen???
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:43
Ob sie tatsächlich verschickt werden, dann ob sie esbis zum anderen pc schaffen nur möglicherweise vom udp ignoriert da er vllt non-active ist
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#10

Re: UDP-Protokolle laufen nicht mehr ein, wenn ein Rechner a

  Alt 23. Mai 2006, 16:53
Naja ich habe ja an meinem Verwealtungstool einen Client und einen Server und mit dem Client sende ich die Daten. Ich kann auch nen String schicken, der den Empfänger dazu zwingt dem Verwaltungstool einen String mit seinem PCNamen zu senden. Die empfengenen Namen trage ich dann in eine Listbox ein. Dadurch weiss ich, welcher Rechner noch per UDP kommuniziert und welcher nicht. Meinstest Du das vielleicht?
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr.
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