Jump to content
jp_li

Como integrar o servidor Socket na minha MainFrame?

Recommended Posts

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Articulando
      Galera, seguinte. Estou tentando criar um evento em javascript que funciona da seguinte maneira; existem 5 checkbox na tela, ao selecionar dois checkbox os outros irão travar e não permitir o clique, se o usuário clicar novamente retirando a seleção de algum dos que foi selecionado ele volta a habilitar. Até então o código funciona blz, porém agora eu preciso fazer com que os dois primeiros checkbox contém como um único clique, ou seja, são 2 checkbox para travar, porém se eu selecionar o primeiro e o segundo eles contam como um, então eu o usuário poderia realizar outro clique em algum checkbox e ficariam 3 checkbox selecionados, porém isso só se aplica aos dois primeiros checkbox, caso não sejam eles é apenas dois cliques, se eles forem clicados o usuário pode escolher mais uma opção.
       
      o código atual está assim:
       
      <script type="text/javascript">
                  (function(){
                      "use strict";
                      var marcados = 0;
                      var verifyCheckeds = function($checks) {
                          if( marcados>=2 ) {
                              loop($checks, function($element) {
                                  $element.disabled = $element.checked ? '' : 'disabled';
                              });
                          } else {
                              loop($checks, function($element) {
                                  $element.disabled = '';
                              });
                          }
                      };
                      var loop = function($elements, cb) {
                          var max = $elements.length;
                          while(max--) {
                              cb($elements[max]);
                          }
                      }
                      var count = function($element) {
                          return $element.checked ? marcados + 1 : marcados - 1;
                      }
                      window.onload = function(){
                          var $checks = document.querySelectorAll('input[type="checkbox"][name="modalidades[]"]');
                          loop($checks, function($element) {
                              $element.onclick = function(){
                                  marcados = count(this);
                                  verifyCheckeds($checks);
                              }
                              if($element.checked) marcados = marcados + 1;
                          });
                          verifyCheckeds($checks);
                      }
                  }());
              </script>
       
       
      Quem conseguir me ajudar eu agradeço, preciso muito desse código rodando. 
    • By Mad_Max
      Estou lendo o livro do waldemar neto sobre nodejs, e tem uma parte que não consigo sair, fiz uma configuração para rodar um teste  na minha aplicação, baixei os modules que o livro pediu: mocha, chai e p supertest e no meu package.json coloquei o seguinte script: 
       
      "test:integration": "NODE_ENV=test mocha --opts test/integration/mocha.opts test/integration/**/*_spec.js"  
      so que quando eu rodo com o npm run dev tes:integration como o livro mandou me aparece esse erro:
       
      > api-loja-virtual@1.0.0 test:integration /home/ed/projeto/api-loja-virtual
      > NODE_ENV=test mocha --opts test/integration/mocha.opts test/integration/**/*_spec.js
      /home/ed/projeto/api-loja-virtual/node_modules/mocha/lib/cli/options.js:209
            throw new Error(`Unable to read ${filepath}: ${err}`);
            ^
      Error: Unable to read test/integration/mocha.opts: Error: ENOENT: no such file or directory, open 'test/integration/mocha.opts'
          at loadMochaOpts (/home/ed/projeto/api-loja-virtual/node_modules/mocha/lib/cli/options.js:209:13)
          at loadOptions (/home/ed/projeto/api-loja-virtual/node_modules/mocha/lib/cli/options.js:310:22)
          at Object.<anonymous> (/home/ed/projeto/api-loja-virtual/node_modules/mocha/bin/mocha:29:14)
          at Module._compile (internal/modules/cjs/loader.js:776:30)
          at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
          at Module.load (internal/modules/cjs/loader.js:643:32)
          at Function.Module._load (internal/modules/cjs/loader.js:556:12)
          at Function.Module.runMain (internal/modules/cjs/loader.js:839:10)
          at internal/main/run_main_module.js:17:11
      npm ERR! code ELIFECYCLE
      npm ERR! errno 1
      npm ERR! api-loja-virtual@1.0.0 test:integration: `NODE_ENV=test mocha --opts test/integration/mocha.opts test/integration/**/*_spec.js`
      npm ERR! Exit status 1
      npm ERR! 
      npm ERR! Failed at the api-loja-virtual@1.0.0 test:integration script.
      npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
      npm ERR! A complete log of this run can be found in:
      npm ERR!     /home/ed/.npm/_logs/2019-07-18T23_16_05_549Z-debug.log
       
      oque pode ser ??
       
      segue o github para baixar o code: https://github.com/MAdMAX-io/API-loja-virtual
    • By TaisStream
      Como configurar essa query com inner join, no arquivo .xml?
      Me ajudem pf eu comecei mas estou perdida,  pesquisei já vi algo de /root... mas minha query esta diferente, nao sei se falta algo
       
       
      QUERY ATUAL:
      set mapreduce.job.queuename=low_relatorios; 
      set mapreduce.job.max.split.locations=100;
      SELECT a.num_msisdn,
             a.max_date
      FROM fact.dw_f_rcrg_gems_rate_subsc t
      INNER JOIN
        (SELECT num_msisdn,
                MAX(dat_operacao) AS max_date
         FROM fact.dw_f_rcrg_gems_rate_subsc
         WHERE (ref_date)>=$startdate
           AND ref_date<=$finaldate
           AND ide_plano_tarifario_atual IN (48,
                                             50,
                                             51,
                                             52,
                                             53,
                                             59,
                                             61,
                                             62,
                                             63,
                                             67,
                                             73,
                                             74)
         GROUP BY num_msisdn)a ON a.num_msisdn = t.num_msisdn
      AND a.max_date = t.dat_operacao
      WHERE ref_date>=$startdate
      AND ref_date<=$finaldate;
       
      QUERY CONFIGURANDO NO XML: 
       
          <value><![CDATA[[
      INSERT
              overwrite TABLE fact.dw_f_rcrg_gems_rate_subsc t 
              (
                      a.num_msisdn,
                      a.max_date
              )
      (SELECT
          INNER JOIN
      SELECT      
              MAX(dat_operacao) AS max_date;
      FROM fact.dw_f_rcrg_gems_rate_subsc) a
         WHERE (ref_date)>='$startdate'
           AND ref_date<=$'finaldate'
           AND ide_plano_tarifario_atual IN (48,
                                             50,
                                             51,
                                             52,
                                             53,
                                             59,
                                             61,
                                             62,
                                             63,
                                             67,
                                             73,
                                             74)
         GROUP BY num_msisdn)a ON a.num_msisdn = t.num_msisdn
                  AND a.max_date = t.dat_operacao
      WHERE ref_date>='$startdate'
      AND ref_date<=$finaldate;]]>
      </value>
       
       
      Poderiam me ajudar por favor, sou estagiario na area e ainda estou aprendendo.
    • By Roberto S. Santos
      Bom dia meus amigos.
      Alguém saberia como eu faço pra enviar o meu (textbox1) salvando na base de dados do meu server wamp ?
      Tipo um botão pra enviar.
      Estou usando o VB.NET 2015 com server wamp.
      Agradeço.
    • By Lucas Galvanini
      Quais frameworks vocês já utilizaram para desenvolver pra Raspberry pi?
      Algum deles é Java?
       
      Fiquei sabendo recentemente de um framework gratuito pra Raspberry chamado TotalCross (www.totalcross.com)
      Me disseram que é bem fácil de usar e tem um footprint bem otimizado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.