AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Client-Server-Kommunikation im LAN
Thema durchsuchen
Ansicht
Themen-Optionen

Client-Server-Kommunikation im LAN

Ein Thema von Schubi · begonnen am 3. Mär 2004 · letzter Beitrag vom 5. Mär 2004
Antwort Antwort
Seite 1 von 3  1 23      
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#1

Client-Server-Kommunikation im LAN

  Alt 3. Mär 2004, 12:34
Hi!

Folgendes Problem:
Im Firmennetzwerk führen einige Rechner mein Programm aus.
Die EXE liegt zentral auf einem Fileserver.
Mein Problem dabei ist, dass die EXE durchgehend in gebrauch ist (Schichtbetrieb), und ich deshalb nicht updaten kann.

Momentan ist die Sache so gelöst, dass sich die EXE beim Start mit der IP-Adresse in eine Textdatei einschreibt, und beim Beenden den Eintrag wieder entfernt.
Dann habe ich ein Programm um den Beenden-Befehl zu senden.
Die Beiden kommunizieren über TServersocket und TClientsocket miteinander.
Jedenfalls gefällt mir die Lösung überhaupt nicht.

Wie bekomm ich es am besten hin, dass ich jederzeit mein kleines Proggy starten kann und an alle Clients die gerade laufen den Beenden-Befehl senden kann, OHNE dabei über Textfiles rausfinden zu müssen, wo die Software läuft.

Die Befehle werden als Text versendet. Zusätzlich ist es möglich normale Nachrichten zu verschicken (momentan nur in eine Richtung, würde mir aber beide Richtungen wünschen).

Am besten wären wohl Indy-Komponenten, oder?
Wie stell ich das mit der Userlist an und wie bekomm ich ne zuverlässige Kommunikation in beide Richtungen hin?

Gruß, Schubi
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#2

Re: Client-Server-Kommunikation im LAN

  Alt 3. Mär 2004, 19:48
Wenn du dich wirklich nur in einem Subnet aufhältst, dann stosse ich dich mal weg von TCP auf UDP und du denkst mal über Broadcast-Messages nach.

BAHNHOF?

Wie schonmal erwähnt, die Indianer sind nix für mich, kann ich dir nix zu sagen, ich persönlch setze immer die ICS von FPiette ein. Die können u.a. auch auf Ports per UDP lauschen.

Einen Broadcast schickt man wie mit TCP auf die Adresse x.x.x.255 des Subnet bzw. auf 255.255.255.255 ab. Alle deine Clients, die auf dem bestimmten Port lauschen, werden dann deine Msg erhalten, und können sich Beenden. Dein Steuerprogramm kann ja auf einem anderen Port lauschen, um die anderen Meldungen zu empfangen.

Die Userlist bekommst du mit der Kommunikationsmethode ebenfalls: Schicke einfach eine Art Ping per UDP und alle, die was empfangen, schicken ein Pong. Schon hast du alle offenen User.
Ciao
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Client-Server-Kommunikation im LAN

  Alt 3. Mär 2004, 20:28
Danke!
DAss es auf einen Broadcast hinausläuft, war mir fast klar.

Kannst du mir mehr über diese ICS-Komponenten sagen?
Klingt soweit schonmal sehr interessant, mir gefallen die Indys nämlich auch nicht
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#4

Re: Client-Server-Kommunikation im LAN

  Alt 3. Mär 2004, 21:30
Zitat von Schubi:
Kannst du mir mehr über diese ICS-Komponenten sagen?
Nur die Homepage vom Entwickler:
http://www.overbyte.be/

und das da zu jeder einzelnen Komponente ein voll funktionstüchtiges Beispiel-Programm beiliegt, in dem genauestens ersichtlich wird, wie sie benutzt werden. Mehr als komfortabel!
Ciao
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Client-Server-Kommunikation im LAN

  Alt 4. Mär 2004, 09:57
Danke, funktionieren wunderbar die Komponenten und sind gegenüber den Indys ne Wohltat
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#6

Re: Client-Server-Kommunikation im LAN

  Alt 4. Mär 2004, 16:17
Mein Reden! 8)
Ciao
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Client-Server-Kommunikation im LAN

  Alt 4. Mär 2004, 19:46
Die Kommunikation klappt schonmal wunderbar. Nur die Broadcasts gehen nicht. die IPs liegen zwischen 10.1.1.101 und 10.1.1.135
Der Broadcast sollte also 10.1.1.255 sein.
Klappt nur leider net. Ich weiß jetzt leider net genau wie das Netzwerk aufgebaut ist bei uns, aber wird wohl ne Bridge oder ein Router oder sonstwas dazwischen liegen.

Kann ich da trotzdem irgendwie nen Broadcast drüberjagen, oder wäre es in dem Fall sinnvoller den Adressbereich einzeln durchzugehen?
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#8

Re: Client-Server-Kommunikation im LAN

  Alt 4. Mär 2004, 20:46
Ich habe das ganze mit jeweils zwei WSockets gebaut gehabt, die folgendermaßen gestartet wurden:

Code:
  with wsServer do begin
   Proto := 'udp';
   Addr := '0.0.0.0';
   Port := '16534';
   LocalPort := '0';
   Listen;
  end;
  with wsClient do begin
   Proto := 'udp';
   Addr := '255.255.255.255';
   Port := '16534';
   LocalPort := '0';
   Connect;
  end;
Das bedeutet soviel, das jeder Kommunikationsteilnehmer sowohl auf dem Port lauscht, als auch sich damit verbindet (was mit UDP natürlich physisch nicht wirklich der Fall ist).

Zum Senden nutze ich einfach die Methode SendStr (wsClient) und zum Empfang wird einfach das Ereignis OnDataAvailable (wsServer) genutzt. Das kannst du dir aber aus den Beispielen (UDPLSTN & UDPSEND) rauskopieren, funzt nämlich so schon richtig gut.

Broadcasts funktionieren wie gesagt eigentlich nur innerhalb eines Subnets und werden nicht geroutet. Ausnahmen bestätigen die Regel. Es gibt wohl Router, bei denen man das routen von Broadcasts aktivieren kann.

Schau ansonsten mal, ob du dich mit deiner IP-Adresse im selben Subnets wie die anderen Rechner befindest.
Ciao
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Client-Server-Kommunikation im LAN

  Alt 4. Mär 2004, 21:44
ich habs von anfang an so gemacht... bin ja net blöd

Ich hab die IP 10.1.1.89 und will senden an z.B. 10.1.1.113 und so... ist also das gleiche subnet...naja...muss wohl die adressen einzeln durchlaufen, da gehts ja dann
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#10

Re: Client-Server-Kommunikation im LAN

  Alt 5. Mär 2004, 05:22
Zitat von Schubi:
Ich hab die IP 10.1.1.89 und will senden an z.B. 10.1.1.113 und so...
Das sagt nicht unbedingt, das du dich im selben Subnet befindest, da kann man mit der Subnetmaske noch viel verbiegen.

Mehr fällt mir aber auch nicht mehr ein, ausser, das es eigentlich funktionieren müsste.
Ciao
  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 22:20 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