안녕하세요
제가 지금 소켓 통신을 구현을 하고 있습니다.
내용은 다음과 같습니다.

1. 안드로이드에서 데이터를 전송 -> 다른 컴퓨터에서 데이터를 수신
2. 수신한 데이터를 분석하고 다시 안드로이드 쪽으로 데이터 송신
3. 구현된 버튼을 클릭할때마다 다시 해당 컴퓨터로 데이터 전송
4. 해당 컴퓨터는 데이터를 수신하고 수신 데이터를 분석ㅡ 다시 안드로이드에게 데이터 송싱.

간단한 건데요...
안드로이드 쪽에서 수신이 전혀 되질 않아요...
수신부를 스레드로 돌려서 데이터를 받아 그 데이터를 텍스트뷰 로 셋 하도록 하려 하는데요..
이부분이 잘 안됩니다...
스레드 부분에서 데이터를 제대로 수신 못하는것 같은데...

해당 소스 부분만 붙여 넣겠습니다.
뭐가 잘못됐을까요??



try { //소켓 생성
         socket = new Socket(doorAddress, 7777);
         out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
         is = socket.getInputStream();
         reader = new BufferedReader(new InputStreamReader(is));

         Thread th = new Thread(new inputData());//데이터 수신을 위한 스레드 생성
         th.start();
        
         out.println("returnStatus");//데이터 전송.
        
        }catch (Exception e) {
   showToast(" " + "C: Error" + " ");
        }       
 }
 
 public class inputData implements Runnable{
  public void run(){
   String value;
   try {
    //showToast(" " + "start" + " "); //문제는 스레드가 실행안돼는듯.. 토스트 실행 안됨.
   while ((value = reader.readLine()) != null){
     status = value; //이 부분에서 status 데이터를 수신.
     controlStatus.setText(status);//데이터가 수신이 되면 텍스트 뷰를 셋팅.
    }
   }catch(Exception e) {
        showToast(" " + "S: Error" + " ");
   }
  }
 }
 
 public void onClick(View v){
     switch(v.getId()){
     case R.id.control_control://버튼 클릭시 상대방에게 데이터 전송하고 데이터 수신하여 텍스트뷰 설정
      out.println("controlStatus");
      break;
     case R.id.control_back: //소켓 연결 해제
      try {
       out.println("EXIT");
    socket.close();
   } catch (IOException e) {}
      finish();
     }     
    }