tcp 통신으로 지속적으로 주고받고를 하고 싶은데요


public void run()

{

byte[] bytes = null;

try {

           System.out.println("Server: Waiting..");

           ServerSocket AndroidserverSocket = new ServerSocket(ServerPort);

           java.net.Socket client = AndroidserverSocket.accept();

           System.out.println("Server: Receiving...");

           BufferedWriter ScreenWriter = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));  // bytearray 로 변환한 데이터 전송

        BufferedReader PositionReader = new BufferedReader(new InputStreamReader(client.getInputStream()));  // 좌표 입력값 받아오기.

       

        byte[] Picture = null;

        byte[] Position = new byte[8];

           while (true) {    

 

               if(imagestream.ImageSize == 0)

               {

                bytes = imagestream.takeScreenshot();

               }

               try {

                   PrintWriter out = new PrintWriter(new BufferedWriter(

                   new OutputStreamWriter(client.getOutputStream())),true);

               } catch (Exception e) {

                   System.out.println("Server : Error");

                   e.printStackTrace();

               } 

               PositionReader.read <- recv처럼 기다려지나요???????????

           }

           

       } catch (Exception e) {

           System.out.println("Server: Error");

           e.printStackTrace();

       }

}


이런식으로 Reader.read로 계속 받고 싶은데(보내는 건 터치 시 override로...)

Buffered reader, writer를 이해를 잘 못하고 있는 것 같아서요 

소켓통신에서 이걸 사용할 때 (byte[]로 통신하고 싶어서.. 이렇게 하려고 하는데...)

만약 무한 루프에서 Reader.read()하면

다른 쪽에서 write를 할때까지 기다려주나요??????

recv() 함수처럼요


만약에 기다리는게 아니라면 기다리고 싶으면 어떻게 해야할까요??