public class Final_ClientActivity extends Activity {
  TextView tv;


 @Override
    public void onCreate(Bundle savedInstanceState)  {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
         tv = (TextView)findViewById(R.id.TextView01);
        

        중간 생략..

    

    }
   


    class Receiver extends Thread {

                중간 생략 ....  

 

                       Log.e("AA" , in.readUTF());
                      tv.append(in.readUTF());
    }

 

로그로 찍어보면 in.readUTF 값이 제대로 출력됩니다..

 

근데.. tv값에 집에 넣으면 오류가발생하네요..?

 

tv.setText(값) 으로 넣어봐도 에러가 발생하고.. 왜일까요 ..?

 

아래는 풀 소스 올려드립니다..

 

package com.client;


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ConnectException;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Final_ClientActivity extends Activity {
    /** Called when the activity is first created. */
   
 TextView tv;
    EditText et;
 final String serverIp = "210.117.134.86";
 Socket socket;
 
 @Override
    public void onCreate(Bundle savedInstanceState)  {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
       
       
        Button btn = (Button)findViewById(R.id.Button01);
        tv = (TextView)findViewById(R.id.TextView01);
        et = (EditText)findViewById(R.id.EditText01);
       
        try {
         tv.setText("서버에서 연결중입니다. 서버IP : " + serverIp);

         socket = new Socket(serverIp, 7777);
         
         Log.e("Started", " dd" );
         Receiver receiver = new Receiver(socket, tv);
         receiver.setDaemon(true);
         receiver.start();
        
         final Sender sender = new Sender(socket);
            //sender.start();

         btn.setOnClickListener(new OnClickListener(){
          public void onClick(View v){
           
           //sender.start();
           
              try {
               DataInputStream in;
               DataOutputStream out;
                  String name;
                
                  out = new DataOutputStream(socket.getOutputStream());
                name = "[" + socket.getInetAddress() + ":" + socket.getPort() + "]";
      out.writeUTF("Client : " + name + et.getText());
      
      
     } catch (IOException e) {
      e.printStackTrace();
     }
     
     
          }
         });
        
       
        
        
        } catch (ConnectException ce) {
            ce.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

    }
   
 class Sender extends Thread {

     Socket socket;
     DataOutputStream out;
     String name;

     Sender(Socket socket) {
         this.socket = socket;
         try {
             out = new DataOutputStream(socket.getOutputStream());
             name = "[" + socket.getInetAddress() + ":" + socket.getPort() + "]";
         } catch (Exception e) {
             e.printStackTrace();
         }
     }

     @Override
     public void run() {
         //Scanner scanner = new Scanner(System.in);
         /*while (out != null) {
             try {
                 out.writeUTF("Client : " + name + et.getText());
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }*/
     }
 }

 

    class Receiver extends Thread {

     DataOutputStream out;
        DataInputStream in;
  Socket socket;
  String recv;
  TextView tv;
  
        Receiver(Socket socket, TextView tv) {
            this.socket = socket;
         this.tv = tv;
            try {
             
             in = new DataInputStream(socket.getInputStream());
             Log.e("A" , in.readUTF());
             
            } catch (IOException e) {
                //e.printStackTrace();
            }
        }

        @Override
        public void run(){
 
         
         while (in != null) {
          try {
     Log.e("AA" , in.readUTF());
     tv.append(in.readUTF());
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
               
            }
           
        
        }
    }
}