使用计时器检查Web服务器状态

时间:2011-07-22 09:05:00

标签: objective-c xcode ipad

我必须从我的服务器下载文件。支持多次下载。 当我点击下载时,我必须检查网络连接和服务器连接,哪个已完成

这是问题!

在下载期间,如果服务器不可用,则会产生一些问题。因此,我必须在5秒后检查服务器连接,并且必须显示服务器已关闭的警报。我用计时器来检查连接。但问题是,在多次下载期间,警报视图显示的次数与下载次数一样多。如果服务器在两者之​​间可用,则应用程序会冻结。但我可以看到计时器代码仍在工作..

示例代码:

    -(void) myFunction     {
if ([networkCheck isHostReachable]) {
        if (![ServerConnectivity isServerUp:myUrl]) {
            serverStatusAlert = YES;        
        }
        if (serverStatusAlert) {
            UIAlertView *serverDownAlert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Server is down. Please try after sometimes." delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];
            [serverDownAlert show];
            [serverDownAlert release];
            serverDownAlert = nil;
            [self cancelAllDownload];
            connectivityTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(checkServerStatus) userInfo:nil repeats:YES];
        }
 }
 else {
      NSLog(@"No network connection...");
 }
}

-(void)checkServerStatus {
    if ([ServerConnectivity isServerUp:myUrl]) {
        [connectivityTimer invalidate];
        connectivityTimer = nil;
        serverStatusAlert = NO;
        //function to resume downloads
    }
    else {
        //pause downloads
    }
}  

0 个答案:

没有答案