How to listen to a Socket connection on Android

0

I have a socket tcp java server on the pc and a tcp socket client on android, I am able to receive data from the server. But how do I create a server that is always listening to a port on android, ie create a socket server in android. Can I for example leave a thread just sending data to a port on the pc, and another thread just receiving data from the pc and updating the wm? Someone has examples or links to help.

  

// sockert server that receives android commands

     

package tanio;

     

import java.io. ; import java.net. ;

     

import javax.swing.SwingWorker;

     

class socketServer implements Runnable {                 String clientSentence="";           String capitalizedSentence;

    int porta = 9837;



    public void run(){
    /*atribuicao do numero da porta ao socket*/
                    ServerSocket welcomeSocket = null;
                  try {
                      welcomeSocket = new ServerSocket(porta);
                  } catch (IOException e1) {
                      // TODO Auto-generated catch block
                      e1.printStackTrace();
                  }
                    System.out.println("Esperando conexoes na porta " + porta);

                    {
                    while (true) {
   Socket connectionSocket = null;        try {           connectionSocket = welcomeSocket.accept();      } catch (IOException e1) {          // TODO
     

Auto-generated catch block e1.printStackTrace (); }          System.out.println ("Connection accepts ...");

    BufferedReader inFromClient = null;       try {           inFromClient = new BufferedReader(new InputStreamReader(
     

connectionSocket.getInputStream ())); } catch (IOException e1) {             // TODO Auto-generated catch block e1.printStackTrace (); }            try {DataOutputStream outToClient = new DataOutputStream (connectionSocket.getOutputStream ());                     } catch (IOException e1) {// TODO Auto-generated catch block e1.printStackTrace (); }

                              try {
                                  DataOutputStream outToClient = new DataOutputStream( connectionSocket.getOutputStream() );

                                   clientSentence = inFromClient.readLine();

                                   System.out.println("Frase recebida do Cliente: " + clientSentence);

                                   //connectionSocket.close();




                                   int valorconvertido = Integer.parseInt(clientSentence);
                                   System.out.println(valorconvertido);

                                   switch (valorconvertido){ 

                                   case 2:

                                       modoAutonomo executarmodoAutonomo = new modoAutonomo();
                                       executarmodoAutonomo.execute();

                                      outToClient.writeUTF("Ligando o Carro!");;
                                      //outToClient.writeByte(2);
                                      outToClient.flush();
                                      //outToClient.close();

                                       break;      

                                   case 3:

                                      desligar executardesligar = new desligar();
                                      executardesligar.execute();

                                       break;


                                  }

                                   connectionSocket.close();


                                      } catch (Exception e) {
                                              System.out.println("PERDA DA CONEXAO");
                                      }
                                      /*fecha a conexão aberta*/
                                      try {
                                          connectionSocket.close();
                                      } catch (IOException e) {
                                          // TODO Auto-generated catch block
                                          e.printStackTrace();
                                      }
                                      System.out.println("Conexao fechada");
                 }


               } }    }

Method to start car

  

package tanio;

     

import javax.swing.ImageIcon; import javax.swing.JOptionPane; import   javax.swing.SwingWorker;

     

import java.text.SimpleDateFormat; import java.util.Date; import   java.util.concurrent.ExecutionException;

     

import tanio.chamarTelPrincipal;

     

public class modeAutonomo extends SwingWorker {             public SerialCom Read arduino = new SerialComLeitura ("COM7", 9600, 0);       public char valorlido;       static int function;

  protected Object doInBackground(){



      arduino.enviarDados(2);
      arduino.receberDados();

      delay.delay(3000); 
      char valorlido = arduino.getPeso().charAt(0);  


      if (valorlido == 'b' | valorlido == 'c') {
      arduino.FecharCom();

          chamarTelaPrincipal.Info.setText("Chave Ligou!");



          //chamarTelaPrincipal.jBLigar.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\start.jpg"));   
          //chamarTelaPrincipal.jBLigar.setEnabled( false );
          //chamarTelaPrincipal.jBLigar.setVisible(false);

          //chamarTelaPrincipal.jBDesligar.setEnabled( true );
          //chamarTelaPrincipal.jBDesligar.setVisible(true);



           //arduino.FecharCom();
              delay.delay(2000);
              chamarTelaPrincipal.Info.setText("Acionando Partida!");

          ////comando para ligar o carro

          arduino.enviarDados(4);
          arduino.receberDados();
          delay.delay(2000);
          char valorlido1 = arduino.getPeso().charAt(0);   //                 char valorlido1 = arduino.getPeso().charAt(0);  
            if (valorlido1 == 'y' ){







              chamarTelaPrincipal.Info.setText("Carro Ligou!");



              chamarTelaPrincipal.btnDesligar.setEnabled(true);//botao desligar
     

is enabled

                chamarTelaPrincipal.btnLigarMotor.setEnabled(false);//botao ligar fica
     

disabled

                chamarTelaPrincipal.jBDesligar.setVisible(true); 
                chamarTelaPrincipal.jBDesligar.setEnabled(true); //botao desligar modo autonomo habilita


                chamarTelaPrincipal.jBLigar.setEnabled(false); // botao ligar modo autonomo desabilita
                chamarTelaPrincipal.jBLigar.setVisible(false);

                chamarTelaPrincipal.btnLigarResto.setEnabled(false); //botao ligar
     

rest off                       callTapMain.btnLookRestore.setVisible (false);

                chamarTelaPrincipal.btnDesligarResto.setEnabled(false);// botao
     

off rest off                       callTapMain.btnCloseRestore.setVisible (false);

             arduino.FecharCom();


              delay.delay(2000);

              arduino.enviarDados(7);
              arduino.receberDados();
              delay.delay(2000); 

              char valorlido9 = arduino.getPeso().charAt(0);  
              if (valorlido9 == 'r') {
                  // som ligou
                  arduino.FecharCom();
                  //chamarTelaPrincipal.btnsomon.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\somdesligado.jpg"));   


                  chamarTelaPrincipal.btnsomon.setEnabled(false); 
                  chamarTelaPrincipal.btnsomon.setVisible(false); 



                  chamarTelaPrincipal.btnsomoff.setEnabled(true); 
                  chamarTelaPrincipal.btnsomoff.setVisible(true); 

                      chamarTelaPrincipal.Info.setText("Som Ligado!");    
              }
              else if(valorlido9 == 't'){
                  //som ja estava ligado

                  arduino.FecharCom();

                  //chamarTelaPrincipal.btnsomon.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\somdesligado.jpg"));   

                  chamarTelaPrincipal.btnsomon.setEnabled(false); 
                  chamarTelaPrincipal.btnsomon.setVisible(false); 



                  chamarTelaPrincipal.btnsomoff.setEnabled(true); 
                  chamarTelaPrincipal.btnsomoff.setVisible(true); 


                      chamarTelaPrincipal.Info.setText("Som Ja esta Ligado!");


              }
              else{
                  System.out.println(valorlido9);

                  arduino.FecharCom();
                  //houve algum problema na conexao e o som nao ligou

                  chamarTelaPrincipal.Info.setText("Problema na Conexao, Som nao ligou!");
                      delay.delay(1000);
                  chamarTelaPrincipal.Info.setText("Verifique o pino VoltSom!");

              }















          delay.delay(2000);

          arduino.enviarDados(5);
          arduino.receberDados();
          delay.delay(2000); 

          char valorlido2 = arduino.getPeso().charAt(0);  
          if (valorlido2 == 'j') {
              arduino.FecharCom();

              chamarTelaPrincipal.Info.setText("Potência Ligada");

              //chamarTelaPrincipal.btnpotencia.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\onoff.jpg"));   

              chamarTelaPrincipal.btnpotencia.setEnabled(false);
              chamarTelaPrincipal.btnpotencia.setVisible(false);

              chamarTelaPrincipal.btnpotenciaoff.setEnabled(true);
              chamarTelaPrincipal.btnpotenciaoff.setVisible(true);




              //chamarTelaPrincipal.jBLigar.setEnabled( false );
              //chamarTelaPrincipal.jBDesligar.setEnabled( true );
          }
          else if (valorlido2 == 's'){
              arduino.FecharCom();

              chamarTelaPrincipal.Info.setText("Potencia Ja Esta Ligada!");

              chamarTelaPrincipal.btnpotencia.setEnabled(false);
              chamarTelaPrincipal.btnpotencia.setVisible(false);

              chamarTelaPrincipal.btnpotenciaoff.setEnabled(true);
              chamarTelaPrincipal.btnpotenciaoff.setVisible(true);



          }
          else {
              arduino.FecharCom();

              chamarTelaPrincipal.Info.setText("Houve algum problema na Conexao!");
          }


          delay.delay(2000);

          Date hora = new Date();
          Date minutos = new Date();
          SimpleDateFormat formatarhora = new SimpleDateFormat("H");
          SimpleDateFormat formatarminutos = new SimpleDateFormat("mm");
          String horaformatada = formatarhora.format(hora);
          String minutosformatada = formatarminutos.format(minutos);
          //System.out.printf(horaformatada);
          //System.out.printf(":%s", minutosformatada);
          int horaint = Integer.parseInt(horaformatada);
          int minutosint = Integer.parseInt(minutosformatada);

          System.out.print(horaint);
          System.out.println(minutosint);

          if (horaint > 2 ){

          arduino.enviarDados(11);
          arduino.receberDados();
          delay.delay(2000); 

          char valorlido4 = arduino.getPeso().charAt(0);  
          if (valorlido4 == 'j') {
              System.out.println(valorlido);
              arduino.FecharCom();

              chamarTelaPrincipal.Info.setText("Farois de Milha Ligados");


              //chamarTelaPrincipal.btnpotencia.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\onoff.jpg"));   

              chamarTelaPrincipal.btnligarfarolmilha.setEnabled(false);
              chamarTelaPrincipal.btnligarfarolmilha.setVisible(false);

              chamarTelaPrincipal.btndesligarfarolmilha.setEnabled(true);
              chamarTelaPrincipal.btndesligarfarolmilha.setVisible(true);


              //chamarTelaPrincipal.jBLigar.setEnabled( false );
              //chamarTelaPrincipal.jBDesligar.setEnabled( true );
          }
          else if(valorlido4 == 's'){
              arduino.FecharCom();


              chamarTelaPrincipal.Info.setText("Farois de Milha Ja Ligados");

              //chamarTelaPrincipal.btnpotencia.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\onoff.jpg"));   

              chamarTelaPrincipal.btnligarfarolmilha.setEnabled(false);
              chamarTelaPrincipal.btnligarfarolmilha.setVisible(false);

              chamarTelaPrincipal.btndesligarfarolmilha.setEnabled(true);
              chamarTelaPrincipal.btndesligarfarolmilha.setVisible(true);


              //chamarTelaPrincipal.btnpotencia.setIcon(new ImageIcon("C:\Users\alicia.cc\Desktop\onoff.jpg"));
              //chamarTelaPrincipal.btnpotencia.setEnabled(false);
          }
          else {
              arduino.FecharCom();
              chamarTelaPrincipal.Info.setText("Houve algum problema na Conexao!");

          }
          }




            }
             else if (valorlido1 == 'i'){
               arduino.FecharCom();
                  chamarTelaPrincipal.Info.setText("Não e Possivel dar Partida!");
                  delay.delay(1000);
                  chamarTelaPrincipal.Info.setText("Chave Desligada!");



  chamarTelaPrincipal.btnDesligar.setEnabled(false);//botao desligar fica ativado

                chamarTelaPrincipal.btnLigarMotor.setEnabled(true);//botao ligar fica
     

disabled

                chamarTelaPrincipal.btnDesligar.setEnabled(false);//botao ligar fica
     

disabled

                chamarTelaPrincipal.jBDesligar.setVisible(false); 
                chamarTelaPrincipal.jBDesligar.setEnabled(false); //botao desligar modo autonomo habilita


                chamarTelaPrincipal.jBLigar.setEnabled(true); // botao ligar modo autonomo desabilita
                chamarTelaPrincipal.jBLigar.setVisible(true);

                chamarTelaPrincipal.btnLigarResto.setEnabled(false); //botao ligar
     

rest off                       callTapMain.btnLookRestore.setVisible (false);

                chamarTelaPrincipal.btnDesligarResto.setEnabled(false);// botao
     

off rest off                       callTapMain.btnCloseRestore.setVisible (false);

              }
              else if (valorlido1 == 'x'){
              arduino.FecharCom();
                  chamarTelaPrincipal.Info.setText("Não e possivel dar a Partida!");
                  delay.delay(1500);
                  chamarTelaPrincipal.Info.setText("Freio de mão não acionado!");


                  chamarTelaPrincipal.btnDesligar.setEnabled(false);//botao desligar
     

is enabled

                              chamarTelaPrincipal.btnLigarMotor.setEnabled(true);//botao ligar fica
     

disabled

                              chamarTelaPrincipal.btnDesligar.setEnabled(false);//botao ligar fica
     

disabled

                              chamarTelaPrincipal.jBDesligar.setVisible(false); 
                              chamarTelaPrincipal.jBDesligar.setEnabled(false); //botao desligar
     

autonomous mode enables

                              chamarTelaPrincipal.jBLigar.setEnabled(true); // botao ligar modo
     

autonomo disables                                     call Main.jBLigar.setVisible (true);

                              chamarTelaPrincipal.btnLigarResto.setEnabled(false); //botao ligar
     

rest off                                     callTapMain.btnLookRestore.setVisible (false);

                              chamarTelaPrincipal.btnDesligarResto.setEnabled(false);// botao
     

off rest off                                     callTapMain.btnCloseRestore.setVisible (false);

              }
              else if(valorlido1 == 't'){
                  arduino.FecharCom();
                  chamarTelaPrincipal.Info.setText("Não e possivel dar a Partida!");
                  delay.delay(1500);
                  chamarTelaPrincipal.Info.setText("Marcha 1 Engatada!");



                  chamarTelaPrincipal.btnDesligar.setEnabled(false);//botao desligar
     

is enabled

                              chamarTelaPrincipal.btnLigarMotor.setEnabled(true);//botao ligar fica
     

disabled

                              chamarTelaPrincipal.btnDesligar.setEnabled(false);//botao ligar fica
     

disabled

                              chamarTelaPrincipal.jBDesligar.setVisible(false); 
                              chamarTelaPrincipal.jBDesligar.setEnabled(false); //botao desligar
     

autonomous mode enables

                              chamarTelaPrincipal.jBLigar.setEnabled(true); // botao ligar modo
     

autonomo disables                                     call Main.jBLigar.setVisible (true);

                              chamarTelaPrincipal.btnLigarResto.setEnabled(false); //botao ligar
     

rest off                                     callTapMain.btnLookRestore.setVisible (false);

                              chamarTelaPrincipal.btnDesligarResto.setEnabled(false);// botao
     

off rest off                                     callTapMain.btnCloseRestore.setVisible (false);

              }

              else{
                  arduino.FecharCom();
                  chamarTelaPrincipal.Info.setText("Houve algum problema na Conexao!");
              }
      }

      else {
          arduino.FecharCom();
          chamarTelaPrincipal.Info.setText("Houve algum problema na Conexao!");


      }           return valorlido;
  } }
Veja que aqui atualizo a gui do programa java e precisso tambem enviar um feedback para a aplicao android
              chamarTelaPrincipal.Info.setText("Carro Ligou!");
              // Preciso aqui um metodo para enviar a informacao para o  a    android


              chamarTelaPrincipal.btnDesligar.setEnabled(true);//botao desligar
     

is enabled

    
asked by anonymous 02.10.2017 / 21:24

0 answers