Hallo,
wenn du's über einen Server machst, wird kein Port Forwarding im Router benötigt.
Auf dem Server sitzt einfach deine Chat Server Software. Die besitzt z.B. ein
TCP Server Socket und hört auf Port 6666.
Verbindet sich ein Client, so erzeugt der Server (Details siehe z.B. ICS Komponenten,
Open Source Netzwerkkomponenten mit eigenem Unterforum auf der EN Delphipraxis.net
Seite, vielen Demos und per GetIt installierbar, geth aber nur für Windows oder Linux,
nicht Android/iOS) erzeugt dieser für die Verbindung einen eigenen
TCP SOcket auf
den diese dann über geht. Dadurch wird Port 6666 für den nächsten verbindungswilligen
wieder frei.
Durch diese
TCP Verbindung hast du dann einen bidirektionalen "Kanal" zwischen
deinem Server und dem Chat Teilnehmer. Der Server ist dann halt zuständig die
Chatinhalte zwischen den entsprechenden Kanälen auszutauschen.
Clientseitig ist es ein
TCP-Client und der Router weiß, welcher TN aus dem internen
Netz mit wem extern verbunden ist, da ist dann keine Portweiterleitung nötig.
Statt
TCP könnte man auch UDP nehmen, das ist verbindungslos, nur ist da das Problem
mit dem Client-Port möglicherweise wieder eines weil der Server ja wissen muss, an
wen er was zurückschickt, diese Port Nummer dann vom Client auf dem PC eingestellt
wird und dann wieder ein Poirt Forwarding bräuchte.
Außerdem werden bei UDP verloren gegangene Datenpakete nicht erneut gesendet.
Grüße
TurboMagic