-(BOOL) connetedToNetwork {
//제로 주소를 생성한다.
struct sockaddr_in zeroAddress;
/*
struct sockaddr_in {
__uint8_t sin_len;
sa_family_t sin_family; //주소 체계(Address family)
in_port_t sin_port; //포트번호
struct in_addr sin_addr; // IP주소를 나타내는 32비트 정수 타입 구조체
char sin_zero[8]; // sockaddr과 같은 크기를 유지하기 위해 필요한 패딩(padding) 공간. 항상 0
};
*/
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
//네트워크 도달 가능 플래그
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if(!didRetrieveFlags) {
printf("Could not recover network flags/n");
return NO;
}
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
return(isReachable && !needsConnection) ? YES : NO;
}
'Developer > iOS' 카테고리의 다른 글
[iOS]Text의 길이에 따라 UILabel 크기 변경하기 (0) | 2013.02.18 |
---|---|
[iOS] 네트워크 연결 테스트 (wifi, cell) (0) | 2013.02.14 |
[iOS] UITableView refresh, 당겨서 새로고침 하기 (0) | 2011.12.19 |
[iOS] 쿠키 삭제하기 (0) | 2011.12.19 |
[IPhone] Cookie head에 추가하기 (1) | 2011.12.13 |