Autore Topic: Applicazione socket non funziona!!!!  (Letto 425 volte)

Offline DeFex_94

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia neo V
  • Sistema operativo:
    Android 4.0.4
Applicazione socket non funziona!!!!
« il: 29 Dicembre 2014, 18:49:33 CET »
0
Salve a tutti sto cercando di creare un'applicazione che attraverso un socket in java riesca a comunicare con u socket nella scheda Arduino qualcuno è in grado di dirmi cosa c'è di sbagliato in questo codice:


Codice (Java): [Seleziona]
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
public class MainActivity extends Activity {

        Button pulsanteON,pulsanteOFF;
   
        public void connetti(char s)
    {
        Socket socket = null;
        DataInputStream dataInputStream=null;
        DataOutputStream dataOutputStream=null;
        try
        {
                socket =new Socket("192.168.1.10",80);
                dataOutputStream=new DataOutputStream(socket.getOutputStream());
                dataOutputStream.writeChar(s);
        }
        catch(UnknownHostException e)
        {
                e.printStackTrace();
        }
        catch(IOException e)
        {
                e.printStackTrace();
        }
        finally
        {
                if(socket!=null)
                {
                        try
                        {
                                socket.close();
                        }
                        catch(IOException e)
                        {
                                e.printStackTrace();
                        }
                }
                if(dataInputStream !=null)
                {
                        try
                        {
                                dataInputStream.close();
                        }
                        catch(IOException e)
                        {
                                e.printStackTrace();
                        }
                }
                if(dataOutputStream !=null)
                {
                        try
                        {
                                dataOutputStream.close();
                        }
                        catch(IOException e)
                        {
                                e.printStackTrace();
                        }
                }
        }
    }
       
        @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        pulsanteON =(Button) findViewById(R.id.pulsanteON);
        pulsanteOFF=(Button) findViewById(R.id.pulsanteOFF);
        pulsanteON.setOnClickListener(new View.OnClickListener() {
                       
                        @Override
                        public void onClick(View v)
                        {
                                char s='0';
                                connetti(s);
                        }
                });
        pulsanteOFF.setOnClickListener(new View.OnClickListener() {
                       
                        @Override
                        public void onClick(View v)
                        {
                                char s='1';
                                connetti(s);
                        }
                });
    }
}


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Applicazione socket non funziona!!!!
« Risposta #1 il: 29 Dicembre 2014, 20:50:39 CET »
0
La richiesta di aiuto è un po' generica, perchè non dici se rilevi un errore e in tal caso quale.

Comunque, con le socket non ho mai fatto niente legato ad Arduino, però in generale vedo una cosa quasi certamente errata: su Android non si può eseguire le richieste di rete all'interno del main thread (quello di UI), ma si deve usare un thread parallelo (con Thread o AsyncTask).

Non so se la tua applicazione lo contempla, ma per connettere arduino ad un'app android, io ho creato su arduino un webserver (gira bene anche su Arduino Uno), e nell'app ho usato una libreria per le richieste http (asynchttp o meglio okhttp). Consiglio caldamente di usare librerie per le richieste http perchè si risolve tutto con una riga di codice (dato che il thread parallelo viene gestito internamente).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline DeFex_94

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia neo V
  • Sistema operativo:
    Android 4.0.4
Re:Applicazione socket non funziona!!!!
« Risposta #2 il: 30 Dicembre 2014, 15:51:09 CET »
0
Sono ancora all'inizio con android infatti ho provato a modificare il codice ma mi dà errore, potresti farmi un esempio sistemandomi il codice