Sockets em Java ( argh )

eXcept

Power Member
Viva.

Tenho de criar, para a faculdade, um chat em java, usando sockets. Já tenho o motor principal a funcionar, e tenho o IP do programa cliente, obtido através da função client.getInetAddress, que está armazenado no vector. No entanto, preciso também de mostrar o hostname da máquina cliente, ou seja, resolver através do NetBios Name o ip da máquina cliente e mostrá-lo. Existe alguma classe/função que o faça automaticamente? Ou terei de "inventar" outras formas?

Tks in advance....

eXcept
 
Bem... supostamente isto deveria funcionar...

Código:
import java.net.*;

public class MyTest {

	public static void main(String[] args) {
		String ip = "209.249.116.141";
		try {
			String resIp = InetAddress.getByName(ip).getHostName();
			System.out.println(resIp);
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

mas a descriçao do método getHostName diz uma cena interessante:

Gets the host name for this IP address.

If this InetAddress was created with a host name, this host name will be remembered and returned; otherwise, a reverse name lookup will be performed and the result will be returned based on the system configured name lookup service. If a lookup of the name service is required, call getCanonicalHostName.

If there is a security manager, its checkConnect method is first called with the hostname and -1 as its arguments to see if the operation is allowed. If the operation is not allowed, it will return the textual representation of the IP address.

Isto quer dizer q poderá nao te fazer o resolve do hostname, devido a um security manager que te tenta fazer um socket connection a esse host para poder fazer o reverse dns lookup, se isso nao for conseguido (firewall por ex...) ele retorna-te o ip de novo.

Tenta e diz qq coisa

[]'s
 
Última edição:
Hey..

funcionou, com algumas alterações que precisava...tks a lot...

Agora outra duvida....

tenho o trabalho dividido em vários files, por imposição. Tenho um Client, um Server, um Handler e os controlos do Applet.

Tenho métodos no Handler que consigo chamar nos outros, no entanto preciso de chamar variáveis que estão declaradas no Handler.

Há alguma forma de fazer isto? Já tentei instanciar, mas não funciona....

Ideas, please :s



EDIT: e já agora uma outra dúvida.... como é ke posso por o "cliente" a obter o seu próprio IP de ligação? Tendo em conta que ele pode ter vários ips..mas só me interessa o IP por onde ele se vai ligar ao server?
 
Última edição:
eXcept disse:
Hey..

... no entanto preciso de chamar variáveis que estão declaradas no Handler.

Há alguma forma de fazer isto? Já tentei instanciar, mas não funciona....

Ideas, please :s
Faz uns "getters e setters" para as variáveis (propriedades).
 
Back
Topo