AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

INDY 10 TCP übers Internet

Ein Thema von hesch21 · begonnen am 19. Apr 2012 · letzter Beitrag vom 23. Apr 2012
Antwort Antwort
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#1

INDY 10 TCP übers Internet

  Alt 19. Apr 2012, 16:47
Hallo allerseits

ich habe ein vermütlich dämliches Problem. Ein simpler TCP-Server und ein an sich ebensolcher Client. Das schöne vorab. Der Client verbindet sich problemlos mit dem Server und der kommt auch auf die OnExecute procedure. Und anmerken möchte ich, dass ich nicht ganz unbedarft beim Thema selbst bin. Ich habe mehrere TCP/IP-Applikationen entwickelt, welche mehrfach im Einsatz sind. Allerdings alle nur für LANs.
Das Besondere hier nun: Das ganze soll übers Internet laufen. Also Rechner irgendwo - Router - Web - Router - mein Server. ich habe deshalb im Client die Ping-Unit einbezogen, um die IP meines Servers über den Hostnamen zu ermitteln (und dieser Hostname ist erst noch ein DYNDNS.ORG-Name). Aber wie gesagt, das funktinoiert. Ich kann vom Client irgendwo im Web eine Meldung an den Server senden, der empfängt sie, verarbeitet sie und hängt sich dann auf dem
Code:
AContext.Connection.IOHandler.WriteLn('200 ' + Ergeb);
auf. Letzter Befehl im OnExecute. Zum Client kommt nichts zurück.

Ich habe nun die Vermutung, dass der Server gar nicht weiss, wohin er die Rückmeldung senden soll. An die IP des Routers des Clients? Wie kommt sie dann zum richtigen Rechner dahinter? Ich kann ja von meinen Kunden nicht verlangen, dass er für diese Applikation am Router eine 'Durchleitung' mit unterschiedlichem Port für jeden betroffenen Rechner einrichtet.
Ich könnte logischerweise den Client sowohl die IP des Rechners als auch die des Routers (also die gegen aussen, das WEB) mitliefern lassen, aber ich habe keine Ahnung, was ich damit im Server-Programm anfangen könnte.

Für jede Art von Tipps wäre ich dankbar.
Heinz Schneider
  Mit Zitat antworten Zitat
mjustin

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

AW: INDY 10 TCP übers Internet

  Alt 19. Apr 2012, 19:29
Firewalls (Router auf der Client- oder Serverseite) können die Antwort-Pakete vom Server an den Client blockieren.

Wenn aus einer Umgebung, die zum Internet keine Portfilter verwendet, der Client funktioniert, liegt das Problem vermutlich eher im Netz des Endkunden und seiner Firewall (Paketfilter-Konfiguration).

Wenn es aus dieser Umgebung heraus nicht funktioniert, ist schon auf dem Weg der Pakete vom Server zum Internet über den Router eine Filterung aktiv. Dann muss die Firewall des Serverzugangs zum Internet konfiguriert werden.

Dies sind aber nicht die einzigen möglichen Probleme (ich bin kein Internetexperte, aber es gibt auch "Routingprobleme" - die nicht mit Filtern oder Firewalls zusammenhängen).
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#3

AW: INDY 10 TCP übers Internet

  Alt 20. Apr 2012, 07:27
Wenn die Software wirklich beim Kunden laufen soll, dann musst du davon ausgehen, dass dort die eigenartigste Firewallsofware läuft. Einzig zuverlässig wäre dann eine Verbindung über einen eigenen Server von dir, sodass Software beim Kunden immer die Anfragen öffnet, aber nie entgegennimmt. Fast jede populäre Software beim Kunden macht das so. (z.B. Chats)

Btw, das mit dem Ping klingt sinnlos. Du kannst doch einfach direkt den Hostname für die Verbindung eingeben, das muss IIRC keine IP sein. Und wenn doch, nimmt man nicht Ping sondern gethostbyname().

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#4

AW: INDY 10 TCP übers Internet

  Alt 23. Apr 2012, 13:23
Vorab danke für Eure Antworten.
Um was geht's mir eigentlich: Eine simple Lizenz-Überprüfung. Die Software auf dem Client übermittelt dem Server einen Lizenz- und einen Prüfschlüssel, das Serverprogramm kontrolliert das und gibt dem Client eine Freischaltung oder einen Fehlercode zurück.

Ein Kommentar zur Ping-Unit. Ich brauche die, um die DYNDNS.ORG-Adresse meines Routers, hinter dem mein Server sitzt, in eine IP aufzulösen.

Aber vielleicht liegt ja das Problem in meinem Testaufbau. Es ist nicht ganz einfach, Tests von zwei unterschiedlichen Internet-IPs zu machen weshalb ich es bisher immer auf zwei Rechnern versucht habe, die am gleichen Router hängen, also 'gegen aussen' dieselbe IP haben. Könnte es sein, dass das den Server zum loopen bringen?
Heinz Schneider
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: INDY 10 TCP übers Internet

  Alt 23. Apr 2012, 15:24
ggf. mal mit meinen TCP IP demos auf source forge probieren .... verwenden INDY 10 auch nur im Firmen LAN
  Mit Zitat antworten Zitat
Antwort Antwort


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 13: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