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

tcp에서 패킷이씹힙니다

0 추천

 

 

자바로 서버를 만들었는데 
패킷두개를 연속으로보낼때 가끔하나가씹히네요
근대 씹히는게 랜덤인게 서버에서 두개받고 보낼때 하나가씹혀져서보내지거나
서버에서 두개받을때 하나가씹혀서오거나 소스에 잘못된게있나요??
tcp는 무손실인데 왜이런지모르겟네요
 
아래는 간략소스인데 서버 클라모두 아래소스를사용함 send로 패킷보내고  line=br.readLine(); 이걸로 값받습니다
지금까지 게속테스트해본결과 line=br.readLine();여기서 못받는문제같은데 (패킷이씹힌상태로 다른패킷보내면잘받음)
어떻게해결해야할까요 클라는 안드로이드고 서버는 윈도우입니다
class Data extends Thread
{
        Socket socket;
        static public void send(String str, Socket sock)
        {
                try
                {
                OutputStream out = sock.getOutputStream();
                PrintWriter pw = new PrintWriter(new OutputStreamWriter(out));        
                pw.println(str);
                System.out.println("보낸내용mr:"+str);
                pw.flush();
                }catch(IOException E){
                        System.out.println("보내기에러"+E.getMessage());
                }
        }
        public void run()
        {
                try
                {
                        while(true)
                        {
                                String line;
                                InputStream in = socket.getInputStream();
                                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                                
                                line=br.readLine(); //값을 받음
                                System.out.println("받은내용data"+line);
                                //받을값을가지고 처리한후 
                               // send메소드로 패킷 을 다시 클라로보냄
                                
                        }catch (IOException e1) 
                        {
                                e1.printStackTrace();
                        }
                }
        }
}

 

돌올 (180 포인트) 님이 2013년 3월 17일 질문

2개의 답변

0 추천
저도 소켓 프로그래밍 이론만 아는지라.. 실제 프로그래밍 경험은 많지는 않은데요..

TCP 라도 동기화에 문제나 서버와 클라간 sleep을 잘못사용하면 간혹 소켓이 날라가버리는 경우가 생기더라고요.

해결책이 될련가 모르겠지만.. send 메서드에 synchronized 한번 사용해보세요.
익명사용자 님이 2013년 3월 18일 답변
0 추천
윗분 말대로 제 경우도 데이터가 꼬이거나 짤리거나 하면 대부분 동기화 문제였습니다.

그 부분을 확인해보세요.
동기화인생 (3,640 포인트) 님이 2013년 3월 18일 답변
...