1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Relacionar classes e atributos

Pessoal, meu cenário é o seguinte:

Tenho uma classe Janela, uma Servidor e uma classe TrataCliente. A classe servidor escuta novas conexões através da classe Socket, e cria novas threads para cada novo cliente, através do método criaConexão assim:

public void criaConexao(String porta) throws IOException {

ServerSocket servidor = new ServerSocket(Integer.parseInt(porta));

        while(true){ 
            Socket conexao = servidor.accept(); // Um socket escutando conexões
            ClienteHandler ch = new ClienteHandler(conexao);
            new Thread(ch).start();
        }
    }

Na classe ClienteHandler(Trata cliente), eu verifico se há dados digitados, e se sim, preciso atualizar o JTextArea da classe Janela. O problema é: Como?

Resumo da classe handler:

    public void run() {
        Scanner entrada = null;
        try {
            saida = new PrintWriter(conexao.getOutputStream());
        } catch (IOException e) {
            System.out.println("Erro de IO para um cliente");
            ;
        }
        try {
            entrada = new Scanner(conexao.getInputStream());
            while (entrada.hasNextLine()) {
                Calendar cal = Calendar.getInstance();
                int hora = cal.get(Calendar.HOUR_OF_DAY);
                int min = cal.get(Calendar.MINUTE);
                int seg = cal.get(Calendar.SECOND);
                String horaFormatada = String.valueOf(hora) + ":" + String.valueOf(min) + ":" + String.valueOf(seg)
                        + " - ";
                setOut(horaFormatada + entrada.nextLine() + "\n");
                // Como enviar os dados digitados pra classe Servidor?
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        entrada.close();
}

Meu void main fica na servidor:

public static void main(String[] args) throws IOException, ParseException {

        Servidor server = new Servidor();
        server.setPorta(server.criaPopup());
        Janela_Servidor janela = new Janela_Servidor(server.getPorta(), server.getIp());
        server.criaConexao(server.getPorta());


    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java swing sockets ou faça a sua própria pergunta.