CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: miseusegau con ben 23 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: DreamReaper con ben 92 Thanks ricevuti negli ultimi sette giorni
Utente del mese: Bokonon con ben 392 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Eccezione socket incomprensibile...

  1. #1
    Androidiano
    Registrato dal
    Apr 2012
    Messaggi
    111
    Thanks
    5
    Thanked 1 Time in 1 Post
    Predefinito

    Eccezione socket incomprensibile...

    Ciao ragazzi! Ho sviluppato questo semplice codice che mi permette di creare un server socket su una porta a caso... su java funziona perfettamente, su android no, mi va su IOException... qualcuno può darmi una mano? Grazie!

    codice:
    package it.example.provasocket;
    
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    	
        ServerSocket sSocket = null;
        Socket socket = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            try {
            	sSocket = new ServerSocket (4954);
            	socket = sSocket.accept();
            	Toast toast = Toast.makeText(getBaseContext(), "Socket passato", Toast.LENGTH_LONG);
                    toast.show();
            }
            catch (IOException e) {
            	Toast toast = Toast.makeText(getBaseContext(), "Socket non passato", Toast.LENGTH_LONG);
                    toast.show();
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
        
    }

  2.  
  3. #2
    Androidiano
    Registrato dal
    Apr 2012
    Messaggi
    111
    Thanks
    5
    Thanked 1 Time in 1 Post
    Predefinito

    Nulla? Nessuno può aiutarmi? Sono bloccato così :-(

  4. #3
    Senior Droid L'avatar di freebong
    Registrato dal
    Apr 2011
    Messaggi
    378
    Thanks
    13
    Thanked 28 Times in 27 Posts
    Predefinito

    Quote Originariamente inviato da valerio65xz
    Nulla? Nessuno può aiutarmi? Sono bloccato così :-(

    Posta il logcat


    Inviato dal mio HTC Desire usando Androidiani App

  5. #4
    Androidiano
    Registrato dal
    Apr 2012
    Messaggi
    111
    Thanks
    5
    Thanked 1 Time in 1 Post
    Predefinito

    Non dice nulla, a parte "skipped x frames! The application may be doing too much work on its main thread" dove x varia ad ogni avvio dell'app.

    E poi quando avvio l'emulatore, dal boot del sistema android in poi, mi dice molto spesso "Unexcepted value from nativeGetEnabledTags: 0"

    EDIT con il printStackTrace mi da un problema... eccolo:

    codice:
    02-03 15:17:02.910: W/System.err(1007): java.net.SocketException: socket failed: EACCES (Permission denied)
    02-03 15:17:02.920: W/System.err(1007): 	at libcore.io.IoBridge.socket(IoBridge.java:583)
    02-03 15:17:02.920: W/System.err(1007): 	at java.net.PlainSocketImpl.create(PlainSocketImpl.java:201)
    02-03 15:17:02.920: W/System.err(1007): 	at java.net.PlainServerSocketImpl.create(PlainServerSocketImpl.java:38)
    02-03 15:17:02.920: W/System.err(1007): 	at java.net.ServerSocket.<init>(ServerSocket.java:98)
    02-03 15:17:02.920: W/System.err(1007): 	at java.net.ServerSocket.<init>(ServerSocket.java:69)
    02-03 15:17:02.920: W/System.err(1007): 	at it.example.provasocket.MainActivity.onCreate(MainActivity.java:22)
    02-03 15:17:02.920: W/System.err(1007): 	at android.app.Activity.performCreate(Activity.java:5104)
    02-03 15:17:02.920: W/System.err(1007): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    02-03 15:17:02.920: W/System.err(1007): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    02-03 15:17:02.930: W/System.err(1007): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    02-03 15:17:02.930: W/System.err(1007): 	at android.app.ActivityThread.access$600(ActivityThread.java:141)
    02-03 15:17:02.930: W/System.err(1007): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    02-03 15:17:02.930: W/System.err(1007): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    02-03 15:17:02.930: W/System.err(1007): 	at android.os.Looper.loop(Looper.java:137)
    02-03 15:17:02.930: W/System.err(1007): 	at android.app.ActivityThread.main(ActivityThread.java:5039)
    02-03 15:17:02.930: W/System.err(1007): 	at java.lang.reflect.Method.invokeNative(Native Method)
    02-03 15:17:02.930: W/System.err(1007): 	at java.lang.reflect.Method.invoke(Method.java:511)
    02-03 15:17:02.930: W/System.err(1007): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    02-03 15:17:02.930: W/System.err(1007): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    02-03 15:17:02.940: W/System.err(1007): 	at dalvik.system.NativeStart.main(Native Method)
    02-03 15:17:02.940: W/System.err(1007): Caused by: libcore.io.ErrnoException: socket failed: EACCES (Permission denied)
    02-03 15:17:02.940: W/System.err(1007): 	at libcore.io.Posix.socket(Native Method)
    02-03 15:17:02.940: W/System.err(1007): 	at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:181)
    02-03 15:17:02.940: W/System.err(1007): 	at libcore.io.IoBridge.socket(IoBridge.java:568)
    02-03 15:17:02.940: W/System.err(1007): 	... 19 more
    EDIT2: dovevo aggiungere al file Manifest i permessi di internet, e ora il ServerSocket passa! Ma l'app mi crasha al socket normale, con questo log:

    codice:
    02-03 15:25:57.153: E/Trace(877): error opening trace file: No such file or directory (2)
    02-03 15:25:57.163: W/Trace(877): Unexpected value from nativeGetEnabledTags: 0
    02-03 15:25:57.163: W/Trace(877): Unexpected value from nativeGetEnabledTags: 0
    02-03 15:25:57.175: W/Trace(877): Unexpected value from nativeGetEnabledTags: 0
    02-03 15:25:57.353: W/Trace(877): Unexpected value from nativeGetEnabledTags: 0
    02-03 15:25:57.353: W/Trace(877): Unexpected value from nativeGetEnabledTags: 0
    02-03 15:25:57.983: D/AndroidRuntime(877): Shutting down VM
    02-03 15:25:57.983: W/dalvikvm(877): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
    02-03 15:25:58.003: E/AndroidRuntime(877): FATAL EXCEPTION: main
    02-03 15:25:58.003: E/AndroidRuntime(877): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.example.provasocket/it.example.provasocket.MainActivity}: android.os.NetworkOnMainThreadException
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.ActivityThread.access$600(ActivityThread.java:141)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.os.Looper.loop(Looper.java:137)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.ActivityThread.main(ActivityThread.java:5039)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at java.lang.reflect.Method.invokeNative(Native Method)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at java.lang.reflect.Method.invoke(Method.java:511)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at dalvik.system.NativeStart.main(Native Method)
    02-03 15:25:58.003: E/AndroidRuntime(877): Caused by: android.os.NetworkOnMainThreadException
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at libcore.io.BlockGuardOs.accept(BlockGuardOs.java:54)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:98)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at java.net.ServerSocket.implAccept(ServerSocket.java:202)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at java.net.ServerSocket.accept(ServerSocket.java:127)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at it.example.provasocket.MainActivity.onCreate(MainActivity.java:23)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.Activity.performCreate(Activity.java:5104)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    02-03 15:25:58.003: E/AndroidRuntime(877): 	... 11 more
    googlando ho trovato che dovrei eseguire le operazioni di rete nel metodo doINBackGround() di AsyncTask ... qualcuno potrebbe chiarirmi questa cosa?? Grazie
    Ultima modifica di valerio65xz; 03-02-13 a 16:34

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •