Solução para meu Socket Java?

0 respostas
netbeansprogramaçãoswingjava
Joao_Paulo3

Possuo uma MainFrame e uma classe Cliente e estou tentando fazer uma conexão servidor/cliente.
Integrei o servidor dentro da MainFrame e gostaria de enviar mensagens para meu cliente, de forma que o cliente receba mensagens com valores dentro da mainFrame.

Dentro da main eu abri a conexão Socket:
`

ServerSocket server = new ServerSocket(3001);
    Socket s = server.accept();
    
    System.out.println("Conectado!");
    DataOutputStream dcs = new DataOutputStream(s.getOutputStream());
    dcs.writeUTF("Bem vindo, você se conectou!");

E possuo a classe Leitor:

public class Leitor extends SwingWorker<Void, Double>  {        
                
                Random rand = new Random();
    
    @Override
    protected  Void doInBackground() throws InterruptedException, IOException {
      
            while (!flag) {
                Double valor =(rand.nextDouble() * 100);
                publish(valor);
                
                if (valor > 90) {
                   newlbl.setText ("A temperatura está alta!");
                
                   
                }
                else if (valor < 15) {
                    newlbl.setText ("A temperatura está baixa!");
                    
                }
                if(valor >15 & valor <90) {
                    newlbl.setText("Temperatura estável");
               
                }
                Thread.sleep(7500);
           
               }
                                
       return null;

    }

Gostaria que em cada if dentro da void doInBackground eu pudesse enviar a mesma mensagem que eu estou setando(vai ficar se atualizando sempre, pois estou gerando valores aleatorios), usando o dcs.writeUTF(), porém preciso que a classe leitor possuo o Socket s, e o dataOutputStream dcs. Qual seria a solução?

Essa é minha class Cliente.java:

public static void main(String[] args) {
    try {
    Socket s = new Socket("127.0.0.1", 3001);
   
    DataInputStream dis = new DataInputStream(s.getInputStream());
   
    String msg = dis.readUTF();
    System.out.println(msg);
   
    }catch (Exception e){}
}
Criado 16 de maio de 2018
Respostas 0
Participantes 1