我目前有一个应用程序,它试图根据我正在与之通信的某些服务器打开一个 web 视图。
但是,我允许用户输入他们自己的服务器 IP,以防 iphone/ipad 和服务器(或其他设备)不在同一个网络上。但是,我正在尝试使用 NSURLConnection 来检测是否可以打开与给定 IP 的连接,但是 NSURLConnection 永远不会返回错误,即使服务器地址(甚至是随机网址)完全是伪造的。
.h
@interface DetailViewController : UIViewController <UIPopoverControllerDelegate, UISplitViewControllerDelegate, UITableViewDataSource, UITableViewDelegate,UIWebViewDelegate, NSURLConnectionDataDelegate> {
.m 中的相关代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
dev_ip = @"http://www.asdfasfdfa.com/";
//dev_ip = (random ip)
NSMutableURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:dev_ip]];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
NSLog(@"Connection established");
}
else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"No Device at designated IP"]
delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
}
}
此 if/else 始终输出“已建立连接”。这是不应该使用 NSURLConnection 的东西吗?如果是这样,我可以使用什么来检测给定 IP 上的设备以进行连接。我需要阻止用户尝试连接到错误的 IP,那么这样做的最佳方法是什么?