Hallöchen allesamt. =)
Wie ihr sicherlich schon mitbekommen habt - da ich jeden damit nerve, den ich finden kann - bin ich gerade emsig dabei, ein Kartenspiel zu basteln, und programmiere auch an einer Onlinevariante.
So weit so gut, die Onlinevariante tut auch alles wunderbar - nur leider tut sie das ausschließlich, wenn sich der Unirechner mit meinem verbindet. Ich habe es jetzt auf mehreren anderen Computern versucht, da geht überhaupt nichts.
Zur generellen Funktionsweise:
Auf einem Server habe ich eine Datei mit IP Adressen. Will jetzt Spieler A mit Spieler B spielen, schaut er in der Liste nach, welche IP Spieler B hat, und gibt sie an einen Indy TCP Client weiter, der sich mit Spieler B in Verbindung setzen soll, der einen Indy TCP Server laufen hat.
Ich habe nun nach einigem Herumprobieren herausgefunden, dass die Funktion, die meine eigene IP Adresse ermittelt, die ich anschließend in die Datei auf dem Server schreibe, oftmals eine lokale IP zurückgibt (192.168.x.x).
Wenn sich dann Spieler A mit mir verbinden möchte, bringt ihm diese Adresse also herzlich wenig, da ich ja nicht in seiner Nähe rumhocke, sondern auf einer anderen Kontinentalplatte...
Also habe ich eine PHP-Datei auf meinen Server gelegt, die nichts weiter tut, als die eingehende IP Adresse zurückzugeben. Läuft soweit ganz wunderbar, ich finde somit meine echte externe IP Adresse heraus, und kann die in die Datei auf dem Server eintragen.
Trotzdem kann sich der Indy Client von Spieler A nicht mit mir verbinden, und noch dazu sagt mir mein Indy Server, dass er die IP Adresse nicht registrieren kann. Auch, wenn ich versuche, dem eigenen Indy Server die lokale IP zuzuweisen, und ihn trotzdem von außen mit der externen IP anzusprechen, tut sich nichts.
Kann mir irgendwer einen Tipp geben, wie Netzwerkprogrammierung funktioniert? Ich verzweifel hier langsam, und ich weiß nichtmal, wo ich anfangen soll, mich weiter zu erkundigen, da ich keine Ahnung habe, was genau ich falsch mache. .___.