현재 리눅스 서버와 안드로이드 클라이언트로 통신을 하고있습니다.

서버와 자바로 테스트를 할경우 서버에서 데이터를 보내준것을 자바 클라이언트에서는 아주 잘받습니다. 한번이 아니라 여러번 받구요.

근데 문제는 안드로이드 인데요

클라이언트를 자바에서 안드로이드로 바꿔서 해보았는데, 서버에서 데이터를 보내줍니다. 예를 들어서 숫자1를 보내주면 클라이언트에서 숫자 1를 받으면 그거에 관한 이미지를 하나 띄어주는 형식으로 하였습니다. 그런데 여기서 문제가 나는데요, 데이터를 받기는 하나 바로 실시간으로 보여주질 못합니다. 서버를 끊을 경우 마지막으로 보내준 데이터에 관한 정보만 보여주더라구요, 왜 실시간으로 안뜨는지에 대해서 잘모르겠습니다...

클라이언트에서 문제가 있는거 같은데 어떤식으로 해야할지 조언좀 주세요..ㅜㅜ

 

package com.test;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final TextView tx = (TextView)findViewById(R.id.txtView);
        final TextView tx2 = (TextView)findViewById(R.id.testview);
       
        ImageView iv = (ImageView)findViewById(R.id.Img);

        // 리소스 폴더로부터 이미지를 불러온다.
        Bitmap mb = BitmapFactory.decodeResource(getResources(), R.drawable.action);
        Bitmap mb2 = BitmapFactory.decodeResource(getResources(), R.drawable.evacuation);
        Bitmap mb3 = BitmapFactory.decodeResource(getResources(), R.drawable.iu);
        
        String ip = "192.168.11.2";
        int port = 9999;
        InputStream is;
       
        tx.setText("접속1");
       
        try {
         for(;;)
       {
   Socket socket = new Socket(ip,port);
   is = socket.getInputStream();
   DataInputStream dis = new DataInputStream(is);
     
   //iv.setImageBitmap(mb3);
   tx2.setText("접속 완료 !");
   
   byte[] data = new byte[1024];
  
    /*Socket socket = new Socket(ip,port);
    is = socket.getInputStream();
    DataInputStream dis = new DataInputStream(is);*/
    dis.read(data,0,1024);
    tx.setText("출력0");
   
    if(data[0] == '1')
    {
     tx.setText("출력1");
     iv.setImageBitmap(mb);
     socket.close();
     tx2.setText("소켓종료");
    }
    else if(data[0] == 2)
    {
     tx.setText("출력2");
     iv.setImageBitmap(mb2);
     socket.close();
    }
    else if(data[0] == 3)
    {
     tx.setText("출력3");
     iv.setImageBitmap(mb3);
     socket.close();
    }
    else if(data[0] == 4)
    {
     tx.setText("출력4");
     socket.close();
    }
    else if(data[0] == 5)
    {
     //tx.setText("출력3");
     socket.close();
    }
    //socket.close();
  
         }    
  } catch (UnknownHostException e) {
   // TODO Auto-generated ca tch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
          
    }
}