[ silvervanja @ 31.08.2006. 16:30 ] @
| kako da iz SocketAddress klase izvučem informacije o ip adresi i broju porta?
recimo, receive() funkcija mi vraća SocketAddress klasu u kojoj bi trebalo da bude upisano odakle mi je stigla poruka; ali ja ne uspevam da iz ove klase izvučem bilo kakvu informaciju...
hvala. |
[ rj444 @ 31.08.2006. 19:04 ] @
Prema ovome:
http://java.sun.com/j2se/1.4.2...pi/java/net/SocketAddress.html
SocketAddress je apstraktna klasa. Vidi da li mozes da saznas koji ti stvarno objekat dobijas.
Ako je u pitanju InetSocketClass onda ces posle "cast"-ovanja imati na raspolaganju metode
Code:
getAddress()
getPort()
Probaj da izvrsis cast iako ne znas da li je stvarno InetSocketAddress u pitanju ono sto dobijas. Ako ti baci ClassCastException onda to nije to, ako proradi super.
:)
Pozdrav
[ silvervanja @ 31.08.2006. 20:30 ] @
na žalost, ja baš ovu klasu dobijam, kao return value iz java.nio.channels.DatagramChannel.receive(), probao sam implicitni cast i on nije prošao. kako da uradim eksplicitni cast koji pominješ? mislim, kako to treba napisati?
inače, nakon ovog problema sam samo učvrstio mišljenje da je java nedovršena igračka, namučio sam se da ugradim non-blocking socket-e, a sada ću da puknem zato što receive() vraća klasu iz koje ne mogu da izvučem ip:port sendera...
[ silvervanja @ 31.08.2006. 23:56 ] @
recimo ovako, izgleda da će ovo raditi:
SocketAddress from = channel.receive(data);
byte[] ip = ((InetSocketAddress) from).getAddress();
int port = ((InetSocketAddress) from).getPort();
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.