Einzelnen Beitrag anzeigen

hesch21

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

INDY 10 TCP übers Internet

  Alt 19. Apr 2012, 15: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