2011-03-18 3 views
0

Donc j'essaye de mettre en place un client de socket pour envoyer juste un int pour le moment avec DataOutputStream à un serveur. Mon application fonctionne correctement lorsque je l'exécute à partir de mon PC mais je reçois ce message d'erreur sur l'émulateur Android sur Eclipse: "L'application SOCKET s'est arrêtée de manière inattendue, veuillez réessayer". Des conseils? Si vous trouvez d'autres erreurs, pourquoi cela ne fonctionnerait pas en général, tout conseil est apprécié.Aide pour l'écriture de DataOutputStream dans Android

Code de l'application pour Android:

import java.io.*; 
import java.net.*; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class SOCKET extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 

     super.onCreate(savedInstanceState); 
     TextView tv = new TextView(this); 
     tv.setText("App1 Test"); 
     setContentView(tv); 
     Client app1Test = new Client(); 
     app1Test.run(); 
    } 

    public class Client implements Runnable{ 

     @Override 
     public void run() { 
      int message = 13; 
      Socket App1 = null; 

        try { 
        App1 = new Socket("xxxxx.dyndns-remote.com", ####); 
       } catch (UnknownHostException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 


      DataOutputStream output = null; 

      try { 
       output = new DataOutputStream(App1.getOutputStream()); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 


      try { 
       output.write(message); 
       output.close(); 
       App1.close(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 

     } 

    } 


} 
} 
+0

pouvez-vous fournir une sortie 'logcat'? –

Répondre

0

Utilisez un tableau d'octets pour envoyer les données.

byte buf [] = message.getBytes(); 
output.write(buf); 

Saludos.