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.