2011-03-18 4 views
0

그래서 서버에 DataOutputStream과 함께 int를 보내는 소켓 클라이언트를 설정하려고합니다. 내 PC에서 실행할 때 내 응용 프로그램이 잘 작동하지만 이클립스의 Android 에뮬레이터에서이 오류 메시지가 나타납니다. "응용 프로그램 소켓이 예기치 않게 중지되었습니다. 다시 시도하십시오." 어떤 팁? 이것이 일반적으로 작동하지 않는 다른 실수를 발견하면 조언을 받으십시오. 안드로이드에 대한 응용 프로그램의안드로이드에서 writting DataOutputStream에 대한 도움말

코드 : 소켓을 엽니 다 매니페스트

<uses-permission android:name="android.permission.INTERNET" /> 

수 있도록 응용 프로그램에서 인터넷의 권한을 설정

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

'logcat' 출력을 제공 할 수 있습니까? –

답변

0

데이터를 보내려면 바이트 배열을 사용하십시오.

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

살루 도스.