안드로이드 개발 질문/답변
(글 수 45,052)
제가 지금 자바를 이용해서 ping 테스트를 좀하고있는데
결과값이 계속 한번씩 이상하게 나와서 문의드립니다
아무래도 받아오는 바이트 수때문에 이러는거같은데 ..
Process p = Runtime.getRuntime().exec("ping 127.0.0.1 -n 2"); 이걸로 핑날리고
byte[] msg = new byte[256];
int len=0;
while((len=p.getInputStream().read(msg)) > 0) {
//System.out.print(new String(msg, 0, len)); //왕복시간
}
String str = new String ( msg ) ;//결과값 메시지
미쳐버리겠네요 ㅠㅠ
나오는 결과값이
type 1 :
Text Decryted : 왕복 시간(밀리초):
최소 = 0ms, 최대 = 0ms, 평균 = 0ms
손실 = 0 (0% 손실),
type 2:
127.0.0.1에 대한 Ping 통계:
패킷: 보냄 = 2, 받음 = 2, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
최소 = 0ms, 최대 = 0ms, 평균 = 0ms
type 2처럼 제대로 나오면 되는데
한번씩 ㅡㅡ type1 처럼 나와요 짜증나게;;
System.out.println ( "Text Decryted : " + str ) ; 이걸로 콘솔에 출력한 화면입니다;
아무래도 버퍼가 비어서 남은 공간에 차다보니 저러는 거 같은데 ㅡㅡ
어떻게 방도가 없나요;;
버퍼로 했는데도 잘모르겠꼬 .. 도와주세요 !
read(msg) 해서 바로 출력하지 마시고
ByteArrayBuffer 같은 곳에 append 하세요.
*ByteArrayOutputStream도 있구요. 여기는 write
그리고 전부다 읽었으면 그때 읽은 전체 byte배열 가지고 String을 만드시면 됩니다.