AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke ClientSocket soll viele Server schnell abfragen

ClientSocket soll viele Server schnell abfragen

Ein Thema von holger_barntrup · begonnen am 19. Aug 2019 · letzter Beitrag vom 26. Aug 2019
Antwort Antwort
Schokohase
(Gast)

n/a Beiträge
 
#1

AW: ClientSocket soll viele Server schnell abfragen

  Alt 19. Aug 2019, 08:39
Nun ja, so was wäre möglich
Delphi-Quellcode:
var
  addresses: tArray<string>;
begin
  addresses := ['a', 'b', 'c'];
  TParallel.&For(Low(addresses), High(addresses),
    procedure(index: Integer)
    var
      adr: string;
    begin
      adr := addresses[index];
      // mach was mit adr
    end);
end;
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#2

AW: ClientSocket soll viele Server schnell abfragen

  Alt 19. Aug 2019, 09:09
Hmm..

Optional könntest Du auch vorher per PING mit nem TimeOut von einer Sekunde (sollte im lokalen Netz reichen) abfragen..
Geht natürlich nur, wenn die Ethernetkarten der Maschinen ein Ping erlauben.

Aber so würdest Du schon wissen, ob sie eingeschaltet sind, bevor Du per TCP/IP dann eine Verbindung versuchst aufzubauen.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
ensaron

Registriert seit: 29. Aug 2008
Ort: 10369 Berlin
63 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: ClientSocket soll viele Server schnell abfragen

  Alt 19. Aug 2019, 10:04
Die Lösung via eigenem Thread wäre meiner Meinung nach von Vorteil, wenn das Abfrageintervall kürzer sein soll, als das maximal mögliche Timeout. Bei Verwendung von eigenen Threads könntest du dir eine Lösung programmieren, die vor dem Anlegen eines neuen Threads erst einmal die Liste der laufenden Threads durchgeht und nachschaut, ob zu der gewünschten Maschiene bereits ein noch offener Verbindungsversuch gestartet ist.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ClientSocket soll viele Server schnell abfragen

  Alt 19. Aug 2019, 13:20
Schau dir mal die ICSOverbyte WinSock Komponente an.

Alles ist Event gesteuert, nicht blockierend; dein Thread muss also zum Beispiel nach einem Connect Versuch (zu einer deiner Maschinen) nicht darauf warten, bis die Gegenstelle antwortet. Du kannst zu allen 101 Maschinen aufs Mal einen Connect Versuch starten und erhältst später via Ereignisse mitgeteilt, ob eine Session zustande gekommen ist, wenn sich ein Socket Status ändert usw. Es ist also völlig egal, wie lange der Verbindungsaufbau zu einer Machine X dauert: Da nicht darauf gewartet wird, ob und wann X antwortet, wird dein Thread nicht blockiert.


Ich habe mit ICS ein p2p Spiel programmiert: Ein User, welcher sich einloggt erhält eine nicht unbedingt sehr aktuelle Liste von Spielservern. Das Szenario ist also praktisch identisch. Alles läuft in einem Thread. In deinem Fall genügt für die Kommunikation (mit ICS) sicher der Hauptthread.
Michael Gasser
  Mit Zitat antworten Zitat
ensaron

Registriert seit: 29. Aug 2008
Ort: 10369 Berlin
63 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: ClientSocket soll viele Server schnell abfragen

  Alt 19. Aug 2019, 13:47
Ja die ICS Komponenten kann ich auch empfehlen. Wenn du mit Threads bisher noch nicht viel gemacht hast, dürftest du mit ICS schneller zum gewünschten Ergebnis kommen.
  Mit Zitat antworten Zitat
Benutzerbild von holger_barntrup
holger_barntrup

Registriert seit: 1. Feb 2007
Ort: Barntrup
97 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: ClientSocket soll viele Server schnell abfragen

  Alt 20. Aug 2019, 05:18
Ich werde mir die mal ansehen, danke für den Tipp.
Gruß Holger
  Mit Zitat antworten Zitat
Benutzerbild von holger_barntrup
holger_barntrup

Registriert seit: 1. Feb 2007
Ort: Barntrup
97 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: ClientSocket soll viele Server schnell abfragen

  Alt 20. Aug 2019, 06:13
Könnte mir bitte jemand Hilfestellung geben wie ich diese Komponente oder das ganze Paket installiere.
Ich hatte jetzt das ICS-8.58 heruntergeladen und in einem eigenen Verzeichnis entpackt.

Steh gerade etwas auf dem Schlauch.
Gruß Holger
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz