|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2002
Messaggi: 2518
|
[Java per android 3.0] Socket che fanno crashare il programma
Salve a tutti,
in poche parole sto provando a fare un mini programmino che comunica tramite socket. Sul mio pc fisso ho già un server scritto in java che comunicava tramite socket e stavo provando in pratica a sviluppare un client da far girare sul mio tablet android 3.0 che comunichi con il server che ho sul pc. Ho provato a scrivere poche righe di codice sfruttando le librerie standard del java: Codice:
package com.neptune.prova3;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import com.neptune.prova3.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
public class Android3Activity extends Activity {
/** Called when the activity is first created. */
private ObjectOutputStream out;
private ObjectInputStream in;
private InetAddress addr;
Socket socket;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Connessione al server
try {
// indirizzo riservato al localhost 127.0.0.1
addr = InetAddress.getByName("192.168.1.101");
} catch (UnknownHostException e1) {
e1.printStackTrace();
((TextView) this.findViewById(R.id.textView1)).setText(e1.getMessage());
}
try {
socket = new Socket(addr, 8085);
//out = new ObjectOutputStream(socket.getOutputStream());
//in = new ObjectInputStream(socket.getInputStream());
((TextView) this.findViewById(R.id.textView1)).setText("CREATO IL SOCKET");
} catch (IOException e1) {
e1.printStackTrace();
socket = null;
((TextView) this.findViewById(R.id.textView1)).setText(e1.getMessage());
}
}
}
Codice:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.neptune.prova3"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="11" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Android3Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Codice:
<uses-permission android:name="android.permission.INTERNET" /> Non riesco proprio a capire da cosa dipenda, contando tra l'altro la semplicità del programma. Avete qualche idea a riguardo? Vi ringrazio in anticipo, guylmaster. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2010
Messaggi: 102
|
devi mostrarci lo stacktrace dell'eccezione (se ti lancia eccezioni) per capirci qualcosa
a naso però c'è un qualche problema o sull'ip (ed eventuali aperture di porte), stai provando in locale? oppure sulla porta (che è chiusa o già in uso o tante cose)... prova a spostare la porta a numeri più alti tipo 12345... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2002
Messaggi: 2518
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Facendo il debug dovresti poter vedere lo stacktrace.
Lo spero almeno, perché devo cimentarmi anch'io con Android... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ti faccio le mie condoglianze, allora.
Tornando all'argomento, c'è un log molto dettaglio di tutte le operazioni che sono state eseguite dalla virtual machine o dal telefonino Android, ivi inclusi gli stacktrace delle eccezioni. Eclipse dovrebbe mostrarlo grazie al plug-in installato. Adesso non ricordo bene il nome della finestra / tab: qualcosa come ADB log o simile. Al limite lo stesso log è disponibile da command line: ADB.exe logcat (ADB,EXE si trova nella cartella bin dell'SDK di Android). Leggerlo è un casino, e a volte è consigliabile mettere dei System.out.println("*****************************************");
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Sep 2010
Messaggi: 102
|
provalo sul telefono a me è capitato delle volte che sul pc non andava mentre sul telefono era perfetto
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:45.



















