AtTheDriveIn
2008-11-24, 23:39:02
Hi
Ich schreibe gerade einen Corba Chat-Server mit einem C++ Client und einem Java Client. Wählt man Login auf den Clients wird an den Server u.a die IP Adresse übertragen und dort gespeichert.
Die IP ist in der IDL Datei als "unsigned long" definiert. Nun macht aber IDLJ daraus für JAVA einen Int-Wert, IDL dagegen behält für C++ einen long.
Die IP Adresse in C++ rausfinden und als (long) IP an der Server senden ist kein Problem, das klappt auch alles und ich kann chaten. Nur wie geht das in JAVA mit Int?
Ich habe dazu im Internet kein Tutorial gefunden.
String localHost = InetAddress.getLocalHost().getHostName();
InetAddress ia = InetAddress.getByName(localHost);
int ip=Integer.parseInt(ia.getHostAddress());
gibt eine Exception.
Klar ich könnte die IP als String übertragen, aber dann tritt mir mein Professor auf die Füße. :)
Eine andere Möglichkeit das Problem zu umgehen und die Sache in meinen Augen auch eleganter zu lösen wäre es, wenn man die IP des aufrufenden-Clients im Server erfragen würde. Aber dazu habe ich ebenfalls nichts gefunden. Gibt es da was? Bei RPC geht es ja auch...
Edit: Corba Implementation ist "mico 2.3.13" falls das wichtig ist.
Ich schreibe gerade einen Corba Chat-Server mit einem C++ Client und einem Java Client. Wählt man Login auf den Clients wird an den Server u.a die IP Adresse übertragen und dort gespeichert.
Die IP ist in der IDL Datei als "unsigned long" definiert. Nun macht aber IDLJ daraus für JAVA einen Int-Wert, IDL dagegen behält für C++ einen long.
Die IP Adresse in C++ rausfinden und als (long) IP an der Server senden ist kein Problem, das klappt auch alles und ich kann chaten. Nur wie geht das in JAVA mit Int?
Ich habe dazu im Internet kein Tutorial gefunden.
String localHost = InetAddress.getLocalHost().getHostName();
InetAddress ia = InetAddress.getByName(localHost);
int ip=Integer.parseInt(ia.getHostAddress());
gibt eine Exception.
Klar ich könnte die IP als String übertragen, aber dann tritt mir mein Professor auf die Füße. :)
Eine andere Möglichkeit das Problem zu umgehen und die Sache in meinen Augen auch eleganter zu lösen wäre es, wenn man die IP des aufrufenden-Clients im Server erfragen würde. Aber dazu habe ich ebenfalls nichts gefunden. Gibt es da was? Bei RPC geht es ja auch...
Edit: Corba Implementation ist "mico 2.3.13" falls das wichtig ist.