Visualizzazione stampabile
-
ServerSocket
Salve a tutti.
Sto cercando di creare una piccola applicazione di prova client-server.
il server è un telefono android
il client è un pc linux
la connessione è quella fatta dal telefono android tramite il tethering.
l problema è che :
una volta partita l'applicazione android (quindi il server si mette in listening) dal pc provo a collegarmi con telnet (non ho provato altro ma non credo sia questo) alla porta dove resta in ascolto il server, ma non va bene e mi dice "Unable to connect to remote host: Connection refused".
Come contro prova del funzionamento del server ho effettuato la connessione dal telefono stesso tramite il terminale android sempre con telnet e funziona.
PS. Ancora dal terminale del telefono eseguendo l'istruzione "netstat -l -t" vedo la porta selezionata in ascolto.
Qualcuno sà?
-
Ciao,
qual'è esattamente l'output del logcat? nel manifest della tua app è presente
codice:
<uses-permission android:name="android.permission.INTERNET"/>
?
Quote:
Originariamente inviato da
mok
Salve a tutti.
Sto cercando di creare una piccola applicazione di prova client-server.
il server è un telefono android
il client è un pc linux
la connessione è quella fatta dal telefono android tramite il tedering.
l problema è che :
una volta partita l'applicazione android (quindi il server si mette in listening) dal pc provo a collegarmi con telnet (non ho provato altro ma non credo sia questo) alla porta dove resta in ascolto il server, ma non va bene e mi dice "Unable to connect to remote host: Connection refused".
Come contro prova del funzionamento del server ho effettuato la connessione dal telefono stesso tramite il terminale android sempre con telnet e funziona.
PS. Ancora dal terminale del telefono eseguendo l'istruzione "netstat -l -t" vedo la porta selezionata in ascolto.
Qualcuno sà?
-
Quote:
Originariamente inviato da
frank17next
Ciao,
qual'è esattamente l'output del logcat? nel manifest della tua app è presente
codice:
<uses-permission android:name="android.permission.INTERNET"/>
?
Si il permesso già l'ho messo nel manifest..il logcat è pulito, non da nessun errore...in sostanza qualcosa vieta il raggiungimento della porta il ascolto che si trova "nel telefono" dal pc..(non so se è chiaro)..
ho anche effettuato una scansione "nmap" dal pc verso il telefono...ma della porta in ascolto neanche l'ombra
-
ma telnet lo usi da terminale shell di linux o da adb (<path dell'android-sdk>/platform-tools/adb shell)?
Quote:
Originariamente inviato da
mok
Si il permesso già l'ho messo nel manifest..il logcat è pulito, non da nessun errore...in sostanza qualcosa vieta il raggiungimento della porta il ascolto che si trova "nel telefono" dal pc..(non so se è chiaro)..
ho anche effettuato una scansione "nmap" dal pc verso il telefono...ma della porta in ascolto neanche l'ombra
-
Quote:
Originariamente inviato da
frank17next
ma telnet lo usi da terminale shell di linux o da adb (<path dell'android-sdk>/platform-tools/adb shell)?
Da shell di linux...devo collegare il pc al telefono sostanzilamente..la connessione è wifi e il pc è connesso al telefono..
Sempre dalla shell di linux (scusa se ripeto) ho effettuato lo scan delle porte del telefono... ne vede un paio ma non quella che mi serve..
Grazie delle risposte ;)
-
Aspetta, raccogliamo le idee.
Tu hai un telefono collegato al pc (nel primo post fai riferimento ad una connessione 'tedering'... intendi Tethering?)
Sul telefono, che fa da server, hai bisogno di stabilire una connessione in telnet dal pc, che è un client.
Ebbene... non credo sia possibile senza passare via adb.
Hai provato a lanciare adb shell, e lanciare da quel prompt il comando telnet? Qual'è la sintassi che usi esattamente?. Cosa intendi per porta in ascolto su Android? Hai delle porzioni di codice da postare dell'app che gira su android mentre tenti il collegamento?
Grazie.
Quote:
Originariamente inviato da
mok
Da shell di linux...devo collegare il pc al telefono sostanzilamente..la connessione è wifi e il pc è connesso al telefono..
Sempre dalla shell di linux (scusa se ripeto) ho effettuato lo scan delle porte del telefono... ne vede un paio ma non quella che mi serve..
Grazie delle risposte ;)
-
Quote:
Originariamente inviato da
frank17next
Aspetta, raccogliamo le idee.
Tu hai un telefono collegato al pc (nel primo post fai riferimento ad una connessione 'tedering'... intendi Tethering?)
Sul telefono, che fa da server, hai bisogno di stabilire una connessione in telnet dal pc, che è un client.
Ebbene... non credo sia possibile senza passare via adb.
Hai provato a lanciare adb shell, e lanciare da quel prompt il comando telnet? Qual'è la sintassi che usi esattamente?. Cosa intendi per porta in ascolto su Android? Hai delle porzioni di codice da postare dell'app che gira su android mentre tenti il collegamento?
Grazie.
Si si intendevo tethering...
Hai ragione raccogliamo le idee..
Allora..consideriamo la seguante semplice applicazione android :
Si considera che lo stesso telefono ha abilitato la funzione di condivisione wi-fi ovvero il tethering, e che un pc sia connesso a questa wi-fi...
La seguente è una run eseguita in un thread dell'applicazione android..
codice:
public void run() {
try {
serverSocket=new ServerSocket(8889);
while(continua){
Socket s=serverSocket.accept();
//fa qualcosa e continua
}
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
secondo queste poche righe, l'applicazione mette un server socket in ascolto sulla porta 8889 su tutte le periferiche del telefono compresa la wi-fi.
Infatti, eseguendo il comando 'netstat -l -t' sul telefono ho :
codice:
~ $ netstat -l -t
Proto Recv-Q Send-Q Local Address Foreign Address State
.
.
tcp6 0 0 :::8889 :::* LISTEN
.
.
.
questo significa che sulla porta 8889 è in ascolto il server socket.
ci siamo fino a qua?
Adesso dato che il pc è collegato in wifi con il telefono eseguendo il comando :
codice:
telnet 192.168.43.113 8889
dovrei riuscire a collegarmi con il telefono alla porta 8889..
-
HO RISOLTO!!!!!!!!!!!! Errore balordo!!!!
non è 192.168.43.113 ma 192.168.43.1
113 è l'ip del computer connesso!!!
SCUSAMI tantissimo del tempo che ti ho fatto perdere..a te e ad altri...scusatemi! :'(