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

TCP/IP 소켓통신의 Readline 딜레이에 관하여 질문입니다.

0 추천
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "MS949" ));
msg = new String(br.readLine());
   

위와 같이 통상적인 방법으로 소켓통신을 하고 있습니다.

 

보통 BufferedReader에 readLine()을 하면 값이 날아올때까지 대기하게 되는데요

저는 이 시점에서 최대 기다리는 시간을 직접적으로 정해주고 싶습니다.

 

그러니까 Readline 상태에서 1초가 지나면 Readline을 중단하고 그대로 연산하는 것이지요.

그래야 응답이 없을때에 대한 카운트로 타임아웃을 지정할 수 있을 것 같은데

가능한 방법이나 조언 부탁드립니다. 감사합니다.
AndroidPark (900 포인트) 님이 2013년 7월 1일 질문

1개의 답변

0 추천
 
채택된 답변
자답입니다.

 

try catch로 감싸고 ReadLine 바로 위에 socket.setSoTimeout(100); 를 넣어주면

 

0.1초동안 데이터가 들어오지 않을 시 catch로 넘겨줍니다.

 

이렇게 응용하여 구현하였습니다.
AndroidPark (900 포인트) 님이 2013년 7월 1일 답변
...