마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Asynctask 내에서 소켓 유지관련 질문입니다..

0 추천
public class NetworkTask extends AsyncTask<Void, Void, Void> 
   {
    String dstAddress;
    int dstport;
       public NetworkTask(String ip,int port) 
    {
     dstAddress=ip;
     dstport=port;
    }
     public NetworkTask() 
     {
  // TODO Auto-generated constructor stub
 }
  @Override
  protected Void doInBackground(Void... arg0) 
  {
   super.onPreExecute();
   String a="1";
   String b="2";
   Log.d("TCP","STS");
   
     while(true)
     { 
      Log.d("TCP", "어싱크태스크돌아요1");
      
      try {
       Log.d("TCP", "어싱크태스크돌아요2");
       
       if(input.readLine()!=null)
       {
        if(input.readLine().compareTo(a)==0)
        { 
        
        // thand.post(showUpdate);
         Log.d("TCP", "팝업스레드");
        //showUpdate.run();
        }
        else if(voice.compareTo(b)==0)
        {
        // thand.post(showUpdate_1);
         Log.d("TCP", "압축스레드");
        }
        else
        {
         Log.d("TCP", "nonono");
        }
       }
       else
       {
        Log.d("TCP", "인풋이 없어욤");
       }
      
       } 
      catch (IOException e) 
      {
       Log.d("TCP", "어싱크태스크돌아요3");
      e.printStackTrace();
      }
      Log.d("TCP", "어싱크태스크돌아요4"); 
    }
   
  }
   }

너무나 궁금해서 이렇게 질문을 올리게되었습니다..

이번에 안드로이드로 소켓통신을 구현하고 있습니다.

서버는 에코서버로 테스트 중이구요.

oncreate에서 소켓을 열어주고

onstart에서 asynctask excute를 합니다. 그러면 async가 메시지를 받아오는족족 반응이 와야하는데..

위에보면

어싱크태스크돌아요1

어싱크태스크돌아요2 까지만 기록이 되고 그다음에 죽어버리는거 같습니다.

제생각엔 try -catch문과 if-else 구문이 문제인거같은데 도저히 모르겠습니다 ㅠㅠ..

고수님들께 도움요청드립니다..!!

Nessfy (120 포인트) 님이 2015년 6월 2일 질문
에러 로그를 올려주세여;;
input 변수가 null인가본데요?
아..그 죽는다는게 어플이 죽는게 아니라 while을 안돈다는 말이었습니다..

while문을 빠져나올 건덕지가 없는데..

2개의 답변

0 추천
아..그 죽는다는게 어플이 죽는게 아니라 while을 안돈다는 말이었습니다..

while문을 빠져나올 건덕지가 없는데..
익명사용자 님이 2015년 6월 2일 답변
0 추천
readline에서 멈췄나보죠.

소켓 기본을 차근히 다시한번 읽어봐요.

(만약 책없으면 책 한권쯤은 사보길. 즉, 교과서없이 공부한다는 건 말도 안되는 소리)
익명사용자 님이 2015년 6월 2일 답변
...