S
SE
AHH ... Jetzt macht es KLICK
Was du versuchst :
Du baust vom Client einen Verbindung zum Server auf.
Der Server bildet darauf hin ein neues Connection-Objekt dem eine this-referenz des Servers *für den Broadcast* und der eben eigegangen Socket übergeben wird.
Danach erzeugst du ein neues Client-Objekt um darauf die Methode getLocalPort() aufzurufen.
DAS GEHT NICHT ... zumindest nich SO
Du kannst vom Server aus nicht die Methode getLocalPort auf dem Client aufrufen ... Davon mal ganz abgesehen das du ein neues , LEERES Objekt erzeugst was sowieso keinen localport haben kann wenn dieser nicht verbunden ist.
Warum wir da nicht gleich drauf gekommen sind : weil uns der Code erst das verraten hat für das du zu unfähig warst dich richtig Auszudürcken.
Wenn du jetzt vom Clienten den localport haben willst musst dein Connction-Objekt dies vom Clienten abfragen und dann verarbeiten. Stichwort : Protokoll
Als Tipp : das jetzt nachträglich in deine Klassen einzubauen ist schwieriger als wenn man diese komplett neu schreiben würde und dabei gleich von vornherein mit einem Protokoll arbeitet.
Und versuche dich nächste mal etwas genau auszudrücken ... weil ein einfaches : Aufruf von Methode X liefert nicht erwartetes Ergebniss reicht nicht. Wenn du auf dem Server ein neues Client-Objekt erzeugst welches natürlich nicht initialisiert wird und dann eine Methode auf ein Objekt anwendest was eigentlich NULL ist *gut .. bei primitiven Datentypen gibt es glaube ich vorkehrungen das dort keine NPE fliegt* ist klar das du auch nur das zurückbekommst. Auch ist es ein großer irrglaube das du so einfach auf eine Methode auf dem Clienten zugrifen könntest. Klar gibt es wunderschöne Lösungen dies zu tun aber das überstiegt dann doch mit sicherheit deine Fähigkeiten und Verständlichkeiten und desshalb werden ich bewusst hier nichts namentlich nennen. Ich bitte auch die anderen sich in diesem Punkt mal ausnahmsweise zu enthalten.
Versuch uns also bitte erstmal eindeutig zu erklären was genau du vorhast. Also welchen Port du nun genau von welchem Objekt haben willst und so weiter. Was du dann damit vorhast ist nicht von belang.
Was du versuchst :
Du baust vom Client einen Verbindung zum Server auf.
Der Server bildet darauf hin ein neues Connection-Objekt dem eine this-referenz des Servers *für den Broadcast* und der eben eigegangen Socket übergeben wird.
Danach erzeugst du ein neues Client-Objekt um darauf die Methode getLocalPort() aufzurufen.
DAS GEHT NICHT ... zumindest nich SO
Du kannst vom Server aus nicht die Methode getLocalPort auf dem Client aufrufen ... Davon mal ganz abgesehen das du ein neues , LEERES Objekt erzeugst was sowieso keinen localport haben kann wenn dieser nicht verbunden ist.
Warum wir da nicht gleich drauf gekommen sind : weil uns der Code erst das verraten hat für das du zu unfähig warst dich richtig Auszudürcken.
Wenn du jetzt vom Clienten den localport haben willst musst dein Connction-Objekt dies vom Clienten abfragen und dann verarbeiten. Stichwort : Protokoll
Als Tipp : das jetzt nachträglich in deine Klassen einzubauen ist schwieriger als wenn man diese komplett neu schreiben würde und dabei gleich von vornherein mit einem Protokoll arbeitet.
Und versuche dich nächste mal etwas genau auszudrücken ... weil ein einfaches : Aufruf von Methode X liefert nicht erwartetes Ergebniss reicht nicht. Wenn du auf dem Server ein neues Client-Objekt erzeugst welches natürlich nicht initialisiert wird und dann eine Methode auf ein Objekt anwendest was eigentlich NULL ist *gut .. bei primitiven Datentypen gibt es glaube ich vorkehrungen das dort keine NPE fliegt* ist klar das du auch nur das zurückbekommst. Auch ist es ein großer irrglaube das du so einfach auf eine Methode auf dem Clienten zugrifen könntest. Klar gibt es wunderschöne Lösungen dies zu tun aber das überstiegt dann doch mit sicherheit deine Fähigkeiten und Verständlichkeiten und desshalb werden ich bewusst hier nichts namentlich nennen. Ich bitte auch die anderen sich in diesem Punkt mal ausnahmsweise zu enthalten.
Versuch uns also bitte erstmal eindeutig zu erklären was genau du vorhast. Also welchen Port du nun genau von welchem Objekt haben willst und so weiter. Was du dann damit vorhast ist nicht von belang.