qual classe usar para reconhecer e mostra o ip de um aplet cliente  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
kyubinarutosan
Smalltalk

Membro desde: 03/02/2011 10:29:35
Mensagens: 3
Offline

olá pessoal eu e uns amigos criamos um aplicativo em java para fazer musicas usando midi usando o seguinte sistema nos criamos um servidor que recebe as informaçoes do aplet cliente via rede(o aplet utiliza java script) to com uma duvida sobre qual classe ou como eu faria para que o meu programa me mostrasse o ip de quem esta conectado e que gere um log das conexoes feitas pelos clientes.
eu agradeço qualquer ajuda pois eu to preso tentando resolver isso fazem umas duas semanas e nao consegui.

outra coisa que eu preciso implementar é a questao do cliente saber se ele esta conectado ou nao se alguem tiver uma ideia sobre como eu resolvo isso eu agradeço a ajuda.

Vale lembrar que eu sou iniciante.

This message was edited 2 times. Last update was at 03/02/2011 11:33:51

avsouza
Virtual Machine Man
[Avatar]

Membro desde: 03/08/2007 13:04:42
Mensagens: 660
Localização: Florianópolis/SC
Offline

usando o metodo da classe
HttpServletRequest

Alexandre Vieira de Souza
luBS
JavaBaby

Membro desde: 10/05/2006 14:00:27
Mensagens: 86
Localização: São Paulo
Offline

avsouza wrote:usando o metodo da classe
HttpServletRequest


Se entendi certo ele está usando um applet, dessa forma você disse para ele como obter o IP caso ele esteja dentro de um servlet...

kyubinarutosan, nunca precisei trabalhar com applet, mas buscando na internet achei o seguinte:

http://www.mkyong.com/applet/how-to-get-client-ip-address-in-applet/

Teste ai para ver se funciona....

Porem, dessa forma vc estara a partir do applet (que roda no browser do cliente), obtendo o IP dele, se seu servidor quiser saber esse IP (deve ser isso) você vai ter que mandar essa informação para lá.

E ai vem a duvida, que servidor é esse? como é a comunicação? se a comunicação é via http e for um servidor rodando servlet's em java, então você pode usar os métodos que o avsouza falou sem precisar obter via applet, se for algo próprio de vocês, mande essa informação junto com as outras que você já deve estar mandando.

This message was edited 1 time. Last update was at 03/02/2011 13:42:03


http://luizroos.blogspot.com/
kyubinarutosan
Smalltalk

Membro desde: 03/02/2011 10:29:35
Mensagens: 3
Offline

Valeu pela dica iubs mas esse metodo que você me passou é pra pegar o ip no applet o que eu preciso é que o servidor me mostre o ip do cliente que esta acessando.
vai o codigo do servidor
package rede;

import com.sun.media.sound.SoftShortMessage;
import com.sun.media.sound.SoftSynthesizer;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import javax.sound.midi.MidiDevice;
import javax.sound.midi.MidiMessage;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.ShortMessage;

public class Servidor {

public static void main(String[] args) {

//Declaro o ServerSocket
ServerSocket serv=null;

//Declaro o Socket de comunicação
Socket s= null;

//Declaro o leitor para a entrada de dados
BufferedReader entrada=null;

try{

//Cria o ServerSocket na porta 7000 se estiver disponível
serv = new ServerSocket(7000);
System.out.println ("Servidor iniciado. Aguardando o Cliente iniciar.");
//Aguarda uma conexão na porta especificada e cria retorna o socket que irá comunicar com o cliente
s = serv.accept();
System.out.println ("O cliente se conectou!");
InputStreamReader isr = new InputStreamReader (s.getInputStream());
//Cria um BufferedReader para o canal da stream de entrada de dados do socket s
entrada = new BufferedReader(isr);

if (entrada != null){
System.out.println("entrou qualquer coisa");
//System.out.println(entrada.readLine()); //teste.
ShortMessage msg = null;
//System.out.println(entrada.read());
//byte[] Byte = entrada.readLine().getBytes();
//System.out.println(Byte);
//int tamanho = Byte.length;
//System.out.println(tamanho);

//for (int i = 0; i <= tamanho - 1; i++){
//msg.getMessage()[i] = Byte[i];
// System.out.print(Byte[i] +" ");

//}
System.out.println("Lendo Dados.");
System.out.println(entrada.readLine());
System.out.println(entrada.readLine());
System.out.println(entrada.readLine());
System.out.println(entrada.readLine());

//System.out.println(tamanho);


}
//Aguarda por algum dado e imprime a linha recebida quando recebe
//System.out.println(entrada.readLine());
//System.out.println(entrada.readLine());


//trata possíveis excessões de input/output. Note que as excessões são as mesmas utilizadas para as classes de java.io
}catch(IOException e){

//Imprime uma notificação na saída padrão caso haja algo errado.
System.out.println("Algum problema ocorreu para criar ou receber o socket.");

}finally{

try{

//Encerro o socket de comunicação
s.close();

//Encerro o ServerSocket
serv.close();

}catch(IOException e){
}
}





}
}
luBS
JavaBaby

Membro desde: 10/05/2006 14:00:27
Mensagens: 86
Localização: São Paulo
Offline

kyubinarutosan wrote:Valeu pela dica iubs mas esse metodo que você me passou é pra pegar o ip no applet o que eu preciso é que o servidor me mostre o ip do cliente que esta acessando.
vai o codigo do servidor
package rede;





Acho que isso pode te ajudar:

http://www.cse.ohio-state.edu/~gurari/course/cis888w04/cis888w04su25.html

Não testei, mas basicamente vc deve pegar e usar os métodos de "s" (retorno de accept)

http://luizroos.blogspot.com/
kyubinarutosan
Smalltalk

Membro desde: 03/02/2011 10:29:35
Mensagens: 3
Offline

gente eu consegui resolver o problema do ip mas me surgiu um outro problema que seria o ip aparecer na interface eu queria saber se eu tenho que criar uma variavel para aparecer na tela se alguem puder me dar uma ideia eu agradeço
[Thumb - inteface.jpg]
 Nome do arquivo inteface.jpg [Disk] Download
 Descrição interface do programa
 Tamanho 18 Kbytes
 Baixado:  19 vez(es)

 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team