CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Eccezione socket incomprensibile...

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Apr 2012
    Messaggi
    150

    Ringraziamenti
    7
    Ringraziato 3 volte in 3 Posts
    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
    150

    Ringraziamenti
    7
    Ringraziato 3 volte in 3 Posts
    Predefinito

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

  4. #3
    Senior Droid L'avatar di freebong


    Registrato dal
    Apr 2011
    Messaggi
    379

    Ringraziamenti
    13
    Ringraziato 28 volte 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
    150

    Ringraziamenti
    7
    Ringraziato 3 volte in 3 Posts
    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 alle 16:34

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy