안녕하세요.



제가 만드는 어플이 화면의 좌표를 입력받아서 상대방에게 전달하는 건데요.

보내는 쪽에서 자꾸 에러가 납니다. -_ -... 일단 직렬화 객체는 MyPoint라는 객체고

MyPoint implements.....{
int X
int Y
int touchAction
}

이렇게 생겼구요,

좌표를 보내는 것은 스레드에서 하는데, 먼저 LinkedList의 Queue를 이용해 입력 좌표를 offer한 후에
(터치 발생시 offer함. 동기화 처리하였음)

보내는쪽 쓰레드안에서 Queue가 빌때까지 poll하여 outputstream을 통해 전달합니다. 
public void run(){
  boolean t;
  try{ 
   out = new ObjectOutputStream(soc.getOutputStream());  //소켓은 이미 연결되어있음.
   while(true){
    synchronized(TouchView.queue){
     t = TouchView.queue.isEmpty();
    }
    if(!t){
     synchronized(TouchView.queue){
      out.writeObject(TouchView.queue.poll());  
     }
     out.flush();
     out.reset();
    } else{
     thread.sleep(100);
    }
   } 
  } //아래는 에러 확인하려고 막코딩 -_ -..
  catch(Exception e){
   System.err.println(e);
   e.printStackTrace(); }
  Log.d("Test","Client Send Error");
 }
이렇습니다.

받는쪽은
   while(true){
    
    recvData = in.readObject();
    //out.reset();
    //out.writeObject(recvData);
    //out.flush();
    System.out.println("send");
    
    
   }
  }catch(Exception e){
   System.err.println(e);
   System.out.println("Server Error");
  }

readObject를 통해서 그냥 입력받는데요... 문제가 어디서 발생했는지 도저히 모르겠습니다.

에러 내용은 이렇습니다.
bb.JPG  

더 중요한 것은...에러 발생후 소켓은 안끊기고, 보내는쪽 스레드도 멈추지 않으며,  계속 포인트를 전송합니다.
...... 또 손실된 부분을 제외하고는 포인트가 정상적으로 전송됩니다. ㅠㅠ
제 코드에서 문제점을 발견하신분 또는 조언해주실분들.. 감사하겠습니다.

몇일째 고민하고 있는데 안풀리네요 ㅠ