AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke instanz des eigenen Programms im Netzwerk finden?
Thema durchsuchen
Ansicht
Themen-Optionen

instanz des eigenen Programms im Netzwerk finden?

Ein Thema von Marco Steinebach · begonnen am 9. Feb 2016 · letzter Beitrag vom 7. Mär 2016
Antwort Antwort
Seite 1 von 3  1 23      
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#1

instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 10:35
Hallo zusammen,
Tschuldigung, mir ist kein sinnigerer Betreff eingefallen.
Ich habe eine Frage:
Mein Prog ist auf zwei Rechnern im lokalen Netzwerk installiert.
Beide haben einen idTCPServer und idTCPClient laufen, um miteinander kommunizieren zu können.
Soweit, so schön.
Gibt es irgendeine Möglichkeit herauszufinden, auf welchem Computer die zweite Instanz läuft...
Also, was ich meine ist:
Das Programm wird auf einem Rechner gestartet und, tja, scannt, das Netz, ob es irgendwo eine zwei, laufende Instanz von sich selber findet.
Ich kann ja schlecht die letzte stelle der IP-Adresse komplett durchscannen, also sowas basteln wie...
Delphi-Quellcode:
for i := 0 to 255 do
begin
  client.host := '192.168.2.* + intToStr (i);
client.connect;
if client.connected then // zweite Instanz gefunden;
end;
Das geht doch sicher eleganter, oder?
Für einen Tipp wäre ich sehr dankbar.
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#2

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 10:51
https://de.wikipedia.org/wiki/Bonjour_(Apple)

https://www.google.de/webhp?q=bonjour%20delphi
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#3

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 10:52
https://de.wikipedia.org/wiki/Broadcast
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 10:53
Ja, mit einem UDP-Broadcast, den die Anwendung selber immer wieder versendet mit der Information "Was bin ich" (Service-Typ), "Wo bin ich" (IP + Port).

Also nicht suchen, sondern darauf lauschen, wer "Hier bin ich" schreit
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#5

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 10:55
Grundsätzlich gibt es mehrere Möglichkeiten:
  • ein https://de.wikipedia.org/wiki/Broadcast
  • eine zentrale Stelle, die das Ziel kennt
    • einer der Beiden ist immer an der selben Stelle erreichbar
    • eine dritte Stelle (Server oder Datei) kennt das/die Ziel(e), da sich die Programme dort eintragen/anmelden ... z.B. ala DynDNS
  • alle IPs des Subnetztes durchprobieren (hoffentlich ist der Port wenigstens fest)
  • die Komunikation läuft immer über einen externen/zentralen Server (Teamviewer, ICQ, MSN usw.)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#6

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 11:07
Der Oberbegriff dazu ist Zero Configuration Networking. Der englische Artikel dazu ist noch besser. Das Bonjour Protokoll von Apple ist eine Möglichkeit dies zu realisieren. Es ist auch immer die Frage der Portabilität. Soll es nur auf Windows funktionieren oder auch auf Mac. Was passiert mit der Firewall, müssen Ports explizit geöffnet werden?

Du kannst z.B. mit Pipes arbeiten. Komponente. Beispiel findest du hier: http://stackoverflow.com/a/512796
Alternative Implementierung in einer Komponente (eleganter): http://www.cromis.net/blog/downloads/cromis-ipc/
Sebastian
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#7

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 13:58
Hallo zusammen,
zunächsteinmal ganz, ganz herzlichen Dank für die Antworten - das Wetter ist so schäußlich, da kann man 'ne Menge lesen...
Ich denke, ich werde das Ganze mit UDP-Broadcasts realisieren.
Dazu noch eine Frage: bisher habe ich die Nachrichten via TCP gesendet - spricht etwas dagegen, die via UDP zu senden, dann brauche ich nicht jeweils einen Server und Client fü TCP und UDP?
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#8

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 14:03
hallo,

UDP gewährleistet nicht, dass die Nachricht auf der anderen Seite auch ankommt. Also die eigentliche Kommunikation würde ich weiterhin über TCP abwickeln.

mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
Photoner

Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 14:04
Dazu noch eine Frage: bisher habe ich die Nachrichten via TCP gesendet - spricht etwas dagegen, die via UDP zu senden, dann brauche ich nicht jeweils einen Server und Client fü TCP und UDP?
Das kommt nur drarauf an ob die Datenübertragung sicher sein muss (sicher in dem Sinne dass alle Pakete ankommen).
Chris
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 9. Feb 2016, 14:09
.. wie verhält es sich denn mit Zero Configuration Networking und der Windows Firewall.
Die blockiert sowas doch in der Regel und muss dann vom Anwender freigeschaltet werden.
Oder irre ich micht hier?

Grüße
Klaus
Klaus
  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 21:55 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