Versão atual:

Enviar o mesmo objeto para vários clientes através de sockets em Java.

Olá,

Gostaria de enviar para vários clientes conectados ao servidor o mesmo objeto. O servidor trata cada cliente em um thread. Segue abaixo o código do servidor:

while(true){

            Socket cliente = servidor.accept();

            System.out.println("Nova conexão com o cliente " +   
            cliente.getInetAddress().getHostAddress());
            String addr = cliente.getRemoteSocketAddress().toString();
            System.out.println("Cliente ID "+ addr);
            clientes.add(addr);
            ThreadServidor ts = new ThreadServidor(cliente);
            ts.start();

Após isso ele instância o objeto que deve ser enviado:

String userToken = clientes.get(0).toString();
                System.out.println("Get User Token "+ getUserToken);
                String content = "content";
                Token token = new Token(getUserToken, getUserToken, content);

A classe do Objeto enviado:

public Token(String sender, String receiver, String content){
        Token.sender = sender;
        Token.receiver = receiver;
        Token.content = content;    
        System.out.println("Token"+sender+receiver);
    }

    public static Token returnToken(){
        Token token = new Token(this.sender, this.receiver, this.content);
        System.out.println("Requisitado o token "+sender+receiver);
        return token;
    }

Ao enviar uso o método writeUnshared, e ao receber o readUnshared.

Se uso os parâmetros do Objeto de forma não "static", cada Thread irá enviar um objeto diferente para cada cliente conectado. Se uso "static", o cliente não recebe o objeto, mas creio que o servidor o envia e ele não é instanciado do outro lado.

Alguma solução para que possa enviar o mesmo objeto em Threads diferentes que trata cada cliente e estes recebam o mesmo objeto?

Obg!

Versão(1):

Ver a versão formatada

Enviar o mesmo objeto para vários clientes através de sockets em Java.

Comentário

new question