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