Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida sobre qual classe e como usar para o servidor mostra o ip do cl


Kyubi

Pergunta

Olá pessoal eu to trabalhando em um programa que usa o sistema cliente/servidor sendo o cliente usa java script e acessa o servidor via rede e o servidor foi feito em java, infelizmente eu iniciei a programaçao em java a pouco tempo e estou com uma duvida de como proceder para que o servidor me mostre o ip e o nome da maquina que está acessando o servidor. se alguém puder me dar umas dicas eu agradeço.

vale lembrar que eu sou iniciante e sei muito pouco ainda sobre as classes e como usa-lás.

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() = Byte;

// System.out.print(Byte +" ");

//}

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){

}

}

}

}

Cliente

package rede;

import java.io.IOException;

import java.io.OutputStream;

import java.io.PrintStream;

import java.net.Socket;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.sound.midi.InvalidMidiDataException;

import javax.sound.midi.MidiSystem;

import javax.sound.midi.ShortMessage;

public class Cliente {

public static void main(String[] args) {

//Declaro o socket cliente

Socket s = null;

//Declaro a Stream de saida de dados

PrintStream ps = null;

try{

ShortMessage msg = new ShortMessage();

int comando = 144;

msg.setMessage(comando,1,44,127);

//Cria o socket com o recurso desejado na porta especificada

s = new Socket("127.0.0.1",7000);

System.out.println ("Conectando ao servidor.");

OutputStream os = s.getOutputStream();

//Cria a Stream de saida de dados

ps = new PrintStream(s.getOutputStream());

//Imprime uma linha para a stream de saída de dados

ps.println(msg.getCommand());

ps.println(msg.getChannel());

ps.println(msg.getData1());

ps.println(msg.getData2());

//ps.println(" ");

os.close();

//Trata possíveis exceções

} catch (InvalidMidiDataException ex) {

Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);

}catch(IOException e){

System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");

}finally{

try{

//Encerra o socket cliente

s.close();

}catch(IOException e){}

}

}

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...