Notice
Recent Posts
Recent Comments
Link
투케이2K
540. (kotlin/코틀린) [유틸 파일] isPingInternetAvailable : Runtime Ping 핑 체크 방식을 통해 네트워크 사용 가능 상태 확인 본문
Kotlin
540. (kotlin/코틀린) [유틸 파일] isPingInternetAvailable : Runtime Ping 핑 체크 방식을 통해 네트워크 사용 가능 상태 확인
투케이2K 2025. 1. 8. 21:24[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java / Kotlin
- 개발 툴 : AndroidStudio
- 기술 구분 : 유틸 파일 / Runtime / Ping
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [isPingInternetAvailable] : Runtime Ping 핑 체크 방식을 통해 네트워크 사용 가능 상태 확인
// -----------------------------------------------------------------------------------------
fun isPingInternetAvailable(): Boolean {
/**
* // -----------------------------------------
* [isPingInternetAvailable 메소드 설명]
* // -----------------------------------------
* 1. Runtime Ping 핑 체크 방식을 통해 네트워크 사용 가능 상태 확인
* // -----------------------------------------
* 2. 호출 방법 : C_StateCheck.isPingInternetAvailable()
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* ping 응답이 성공한 경우 true / 아니면 false
* // -----------------------------------------
*/
// [리턴 및 로그 변수 선언]
var returnData = false
var M_LOG = ""
// [Ping 체크 필요 변수 선언]
val runTime = Runtime.getRuntime()
// ------------------------------------------------
// [host 는 test 하고 싶은 주소 삽입]
// ------------------------------------------------
// [c = 패킷을 날릴 횟수 / W = 상대방이 응답을 주기까지 대기 시간 (Seconds) : 기본은 4초]
// ------------------------------------------------
val host = "google.com" // [Ping 체크 주소]
val cmd = "ping -c 1 -W 5 $host" // [-c 1 은 반복 횟수를 1번만 날린다는 뜻]
var proc: Process? = null // [exec 수행 주체]
// [로직 처리 수행]
try {
proc = runTime.exec(cmd) // [커맨드 명령어 수행]
proc.waitFor() // [커맨드 응답 대기]
// ------------------------------------------------
// [여기서 반환되는 ping 테스트의 결과 값은 0, 1, 2 중 하나]
// ------------------------------------------------
// [0 : 성공, 1 : fail, 2 : error]
// ------------------------------------------------
val result = proc.exitValue()
if (result == 0) {
returnData = true
M_LOG = "[Success] :: Ping Check"
} else {
M_LOG = "[Error] :: Ping Check ($result)"
}
} catch (e: Exception) {
e.printStackTrace()
M_LOG = "[Exception] :: " + e.message.toString()
}
// [로그 출력 실시]
// ===============================================================
S_Log._D_("Runtime Ping 핑 체크 방식을 통해 네트워크 사용 가능 상태 확인", arrayOf(
"M_LOG :: $M_LOG",
"RETURN :: $returnData"
))
// ===============================================================
// [리턴 반환]
return returnData
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------
///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.A_Intro$1.onClick]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 인터넷 사용 가능 여부 핑 체크 Start]
W///===========//: ================================================
D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.C_StateCheck.isPingInternetAvailable]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: Runtime Ping 핑 체크 방식을 통해 네트워크 사용 가능 상태 확인]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: [Success] :: Ping Check]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
D///===========//: ================================================
W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.A_Intro$1.onClick]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 인터넷 사용 가능 여부 핑 체크 결과 확인 :: true]
W///===========//: ================================================
// --------------------------------------------------------------------------------------
반응형
'Kotlin' 카테고리의 다른 글
Comments