|
|
|
|
Strumenti |
18-08-2014, 15:53 | #1 |
Junior Member
Iscritto dal: Aug 2014
Messaggi: 9
|
ANDROID--Problema ServerSocket
Salve a tutti..
Sto sviluppando un app Android per la tesi di laurea. Premetto che sono alle prime armi con la programmazione Android. Ho un problema riguardante la ServerSocket. In pratica ho sviluppato una semplicissima app Android che funge sia da client(invia una semplice stringa a un server java) che da server(riceve una semplice stringa da client java). Il thread che funge da client funziona benissimo, invia correttamente la stringa a un server java utilizzando la classe Socket. Invece il thread che funge da server rimane in attesa su ServerSocket.accept() ma non riceve la connessione dal client, quindi rimane fermo là. Vi posto il codice della classe WorkerThreadServer: Codice:
public class WorkerThreadServer extends Thread{ final String TAG = "WorkerThreadServer class"; public void start(){ Log.i(TAG,"start() method"); super.start(); } public void run(){ try{ socketServer = new ServerSocket(10324); Log.i(TAG,"in attesa di connessione...."); Socket socket = socketServer.accept(); Log.i(TAG,"connessione ricevuta....!"); Log.i(TAG,"dati del client..."+socket.getLocalPort()); }catch(Exception e){ Log.i(TAG,"eccezione="+e.toString()); } } } La classe WorkerThreadServer viene istanziata e avviata al click di un bottone attraverso le due seguenti istruzioni: Codice:
WorkerThreadServer serverThread = new WorkerThreadServer(); serverThread.start(); Il client è una semplicissima applicazione java con il seguente codice: Codice:
public class Client{ public static void main(String args[]){ System.out.println("Avvio client in corso...."); //codice client---------------------- Socket socket = null; DataOutputStream dataOutputStream = null; DataInputStream dataInputStream = null; try { socket = new Socket("192.168.56.1",10324); dataOutputStream = new DataOutputStream(socket.getOutputStream()); dataInputStream = new DataInputStream(socket.getInputStream()); dataOutputStream.writeUTF("Questa e’ una prova"); } catch(UnknownHostException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } finally{ if (socket != null){ try { socket.close(); } catch(IOException e) { e.printStackTrace(); } } if (dataOutputStream != null){ try { dataOutputStream.close(); } catch (IOException e) { } } if (dataInputStream != null){ try { dataInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }} Come già accennato prima il thread dell'app che si occupa della parte client ha lo stesso codice di questo client java e funziona benissimo aprendo una connessione e inviando la stringa a un server java (che utilizza sempre ServerSocket.accept() ). Vi chiedo gentilmente se potete aiutarmi, ve ne sarei veramente molto grado... |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:27.