Originariamente inviata da
fermat
ciao!
non mi convince molto quel AsyncTask<String, Void, String>.
prova a metterlo così AsyncTask<String, Void, Void> (in fin dei conti gli passi un solo oggetto String).
cmq, oltre a questo che non so quanto sia risolutivo, posta un pò più di log.
da quelle due righe si capisce poco!
L'ho fatto <String, Void, String> perché ritorna la "Executed", ma posso benissimo farne a meno e piazzarci un bel Void e return null effettivamente.
Per quanto riguarda il log, dopo aver cambiato quella cosa sull'AsyncTask, mi ha fatto vedere ulteriori cose: innanzitutto, ho provato a mettere all'interno del try/catch in cui inizializzo il socket 2 Log: uno mi stampa la stringa "corretto" e l'altro la stringa "eccezione" in base a dove è andato. Inoltre, ho aggiunto un ulteriore stampa di una stringa nel caso il socket sia = null. A livello di codice, ho fatto una cosa del genere:
codice:
protected Void doInBackground(String... params) {
Socket socket = null;
String ordine = params[0];
Log.d(TAG, ordine);
InetAddress serverAddress = null;
try {
serverAddress = InetAddress.getByName(SERVER_IP);
} catch (UnknownHostException e) {
e.printStackTrace();
}
try {
Log.d(TAG, "corretto");
socket = new Socket(serverAddress, 6000);
} catch (IOException e) {
Log.d(TAG, "eccezione");
e.printStackTrace();
}
Log.d(TAG, "creato");
try {
if(socket != null){
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
PrintWriter out = new PrintWriter(bufferedWriter, true);
out.println(ordine);
}
else{
Log.d(TAG, "socket null");
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Nel log è comparso, subito dopo la stringa "eccezione", l'eccezione java.net.ConnectException. Deduco dunque non sia avvenuta la connessione al server, il che mi fa pensare che abbia sbagliato a dare l'indirizzo del server.
Dunque, io per collegare l'app client (che risiede su uno smartphone) e l'app server(su un altro smartphone) li ho connessi entrambi alla stessa rete Wi-Fi, sono andato sulle impostazione dello smartphone in cui risiede l'applicazione lato server e ho utilizzato l'indirizzo IP che mi dava in
Wi-Fi -> Avanzate Wi-Fi. È corretto oppure c'è qualcosa di sbagliato?
Grazie della pazienza!
Per quanto riguarda l'organizzazione del programma sì, hai completamente ragione andbin e provvederò a sistemare anche quell'aspetto!