Visualizzazione stampabile
-
Problema ServerSocket
Ciao ragazzi,
ho un problema riguardante l'utilizzo del ServerSocket...
In pratica sto cercando di fare una semplicissima app che apre una ServerSocket e rimane li in ascolto, in attesa di una connessione...poi eventualmente riceve una stringa e la stampa.
Il meccanismo è molto semplice, appena viene cliccato un bottone, viene creato un Thread(che si occupa di gestire la ServerSocket) e richiamato il suo rispettivo metodo start()...ecco il codice del metodo che cattura il click del bottone:
e del thread che viene creato:
In pratica il problema è che il thread si blocca sul comando "s = serverSocket.accept()" in attesa di ricevere una connessione, ma anche se gli invio comandi tramite un client, non li riceve e rimane sempre bloccato li. Infatti stampa il Log "In attesa di connessione..." ma non stampa mai il Log "Connessione ricevuta!".....
Il client è una semplicissima applicazione java, ecco il codice se può essere utile:
Inoltre la stessa app ha anche un altro bottone che se cliccato apre una Socket e invia una stringa e un'altra semplicissima applicazione java che funge da server(molto simile a questa client che ho postato) la riceve correttamente.....
Vi chiedo gentilmente se sapete quale potrebbe essere il problema...:(
-
Domanda stupida sei sicuro che l IP di ascolto del server sia quello corretto?
Inviato dal mio Nexus 5 usando Androidiani App
-
il server(app android) per ora lo faccio girare sull'emulatore di Android in Eclipse e ho inserito l'indirizzo ip del pc su cui gira (prompt dei comandi-->ipconfig--> indirizzo IPv4 )........:(
-
-
Questo a me funge
Inviato dal mio Nexus 5 usando Androidiani App
-
Chiedo scusa devo farvi una domanda forse molto banale...
In rete ci sono moltissimi esempi e vengono anche pubblicati i sorgenti funzionanti. Io scarico quest'ultimi e metto le due cartelle (dei due rispettivi progetti "client" e "server" android) all'interno di workspace...Perche Eclipse non me le vede? Non vede i progetti che scarico e li metto dentro workspace...mentre i progetti che creo io me li vedo regolarmente...
ho provato anche a fare più volte il refresh...
-
Fai l import dei progetti nuovo progetto Android progetto già esistente
Inviato dal mio Nexus 5 usando Androidiani App
-
A quanto pare il problema per cui non funziona credo che sia perche l'emulatore di Android apre una porta(solitamente numero 5554) e il mio client java apre una socket con porta "10324" (quella in cui resta in ascolto l'app android server).
In teoria credo che dovrei mettere in ascolto anche la porta dell'emulatore(la 5554)....
Ma non ho ben capito come funzioni il meccanismo..
Qualcuno per caso saprebbe come risolvere il problema..?
-
Importante
Vi chiedo gentilmente se qualcuno potrebbe aiutarmi, non so più cosa provare...
In pratica la mia app all'avvio(metodo onCreate) crea una WorkerThreadServer(un nuovo thread) che istanzia una ServerSocket e resta in attesa di una connessione.... Vi posto il codice della classe WorkerThreadServer:
Questo invece il codice del client....una semplicissima applicazione java..:
Inoltre all'interno dell'app c'è anche un WorkerThreadClient che funziona benissimo, invia correttamente una stringa a un server java....
Il problema è che nel WorkerThreadServer viene stampato il LOG "Log.i(TAG,"in attesa di connessione....");" ma poi si blocca su serverSocket.accept(); non riceve nessuna connessione (quindi non viene mai stampato il LOG "Log.i(TAG,"connessione ricevuta....!");"....
Vi chiedo gentilmente se potete aiutarmi, ve ne sarei veramente molto grado....