AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Rat für Umsetzung Client-Server-Architektur gesucht

Rat für Umsetzung Client-Server-Architektur gesucht

Ein Thema von Jumpy · begonnen am 24. Nov 2011 · letzter Beitrag vom 9. Dez 2011
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 8. Dez 2011, 08:00
Ein kleines Statusupdate:

Ich hab mal eine erste Testversion, bei der nur Dummy-Daten verschickt werden aufgebaut. Dabei hab ich mir das Chat-Tutorial von Ultimator als Vorlage genommen und leicht abgewandelt.

Das ganze in Delphi6 und mit den Komponenten TServerSocket und TClientSocket.

Fazit, das funktioniert wie gewünscht und würde mir schon reichen, doch habe ich u.a. hier im Forum gelesen, dass bei neueren (Server-)Betriebssystemen ein ServerSocket nur noch 10 Clients akzeptiert. Ist da was dran, oder hab ich das Missverstanden?
Ich teste das z.Zt. mit XP und da ging es. Da aber noch nicht klar ist, auf welchem Server das nachher läuft, mach ich mir sorgen, dass das nachher in der Echtanwendung nicht mehr funzt.

Für diesen Fall hab ich mir einen Plan B überlegt und wollte mal fragen, ob der sinnvoll ist. Ich baue den Server mit mehreren TServerSocket-Komponenten, die jeweils an einem anderen Port lauschen (geht das)? Der Client verbindet sich zunächst mit einem zentralen ServerSocket (quasi ein Verwalter), dass dem Client als einzige Info dann nur den Port schickt, an dem eine "Socket lauscht" die noch freie Kapazitäten hat und mit dieser verbindet sich dann der CLient.
Ralph
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 8. Dez 2011, 09:05
..., dass bei neueren (Server-)Betriebssystemen ein ServerSocket nur noch 10 Clients akzeptiert. Ist da was dran, oder hab ich das Missverstanden?
Ich teste das z.Zt. mit XP und da ging es.
Bei Serverbetriebssystemen gibt es ganz sicher keine Begrenzung. Auf XP (ein Clientbetriebssystem) bezogen habe ich diesen Link gefunden:

Windows XP SP2 TCP Connection Limit (Event ID 4226) - XP erlaubt maximal zehn Verbindungen pro Sekunde, damit soll laut Angaben die Verbreitung von Viewn ("Würmern") gebremst werden, es gibt im Internet viele Seiten die Software zur Lösung dieses "Problems" anbieten (Disclaimer: der dort angebotene Download soll angeblich die Grenze beseitigen, ich rate aber dazu Anwendungen aus unsicheren Quellen nicht herunterzuladen und auszuführen)


Ob es lizenzseitig gestattet wird, auf einem Clientbetriebssystem wie XP vielen anderen Benutzern einen Zugang zu ermöglichen ist eine andere Frage
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 8. Dez 2011, 09:41
Ich hab es wie folgt getestet:
Mein Desktop PC XP SP3 beherbergt die Serveranwendung und es laufen 4 Clients auf ihm.
Desktop PC meines Kollegen, Win7, beherbergt 4 weitere Clients.
Eine VM, die auf einem Server liegt, Win 7, beherbertg nochmal 4 Clients.

Insgesamt also 12 Clients. Und es gab keine (sichtabren) Probleme.
Kann natürlich sein, da sich die 12 Clients auf nur 3 IP-Adressen verteilen, dass es daher klappt?

Und wie gesagt, ich nutze keine TCP-Komponenten, sondern TServersocket und TClientSocket.
Ralph
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 8. Dez 2011, 16:00
Insgesamt also 12 Clients. Und es gab keine (sichtabren) Probleme
Und die Clients haben ihre Verbindungen alle genau in der gleichen Sekunde hergestellt? Die Beschränkung ist "maximal 10 neue Verbindungen pro Sekunde", ich hatte auch schon eine Supportanfrage (zu einer verteilten Delphi Anwendung) die sich genau dadurch erklären und beheben liess.

Und wie gesagt, ich nutze keine TCP-Komponenten, sondern TServersocket und TClientSocket.
Diese sind auch TCP(/IP)-Komponenten. (Und offiziell seit einigen Versionen auch bereits "deprecated" - sie verwenden ein ineffizientes Design basierend auf Windows Messages)
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 9. Dez 2011, 09:03
Insgesamt also 12 Clients. Und es gab keine (sichtabren) Probleme
Und die Clients haben ihre Verbindungen alle genau in der gleichen Sekunde hergestellt? Die Beschränkung ist "maximal 10 neue Verbindungen pro Sekunde", ich hatte auch schon eine Supportanfrage (zu einer verteilten Delphi Anwendung) die sich genau dadurch erklären und beheben liess.
Ahh, jetzt versteh ich das. Natürlich wurde die Verbindung nicht innerhalb 1 Sekunde hergestellt, sondern gemütlich innerhalb einer Minute oder so nacheinander. D.h. wenn die Verbindung einmal steht, können ruhig noch mehr dazu kommen?
Es werden dann nämlich immer mal wieder Nachrichten über diese Verbindungen vom Server an die Clients geschickt, da ist es dann egal an wie viele Clients "nahezu" gleichzeitig verschickt wird?


Zitat:
Diese sind auch TCP(/IP)-Komponenten. (Und offiziell seit einigen Versionen auch bereits "deprecated" - sie verwenden ein ineffizientes Design basierend auf Windows Messages)
Meinst du es ist da besser direkt die entsprechenden Indy-TCP-Komponenten (TIdTCPServer usw.) zu verwenden? Ginge das einfach analog?
Ralph
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 9. Dez 2011, 11:32
D.h. wenn die Verbindung einmal steht, können ruhig noch mehr dazu kommen?
Ja, das sollte problemlos gehen


Meinst du es ist da besser direkt die entsprechenden Indy-TCP-Komponenten (TIdTCPServer usw.) zu verwenden? Ginge das einfach analog?
Für meine (kommerziellen) Projekte nutze ich nur Indy und Synapse, beide sind vom Lernaufwand vergleichbar, und in Maßen anspruchsvoll. Wenn man Indy nicht als Packages installiert sondern nur die Verzeichnisse (Core, System und Protocols) zum Projekt oder den IDE Optionen hinzufügt, ist es genauso unkompliziert in der Handhabung wie Synapse. (Indy 11 soll einen besseren Installer bekommen)
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Rat für Umsetzung Client-Server-Architektur gesucht

  Alt 9. Dez 2011, 12:40
Danke für die Infos. Bei unserem Delphi6 sind schon Indys direkt mit dabei, aber wahrscheinlich ältere. Trotzdem werd ich sie mal ausprobieren.
Ralph
  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 03:33 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