2012-02-01 87 views
0

我一直在尝试为我的ipad开发一个应用程序,我可以使用它连接到本地网络设备以获取文件等,而无需任何进展。 我想要做的是首先检测网络上的设备,然后选择我想通过连接来浏览文件。使用可可连接到本地网络上的设备

我走到这一步,是

#import "BrowseForNetworkDevices.h" 

@implementation BrowseForNetworkDevices 

- (id)init 
{  
    self = [super init]; 

    if (self) 
    {   
     services = [[NSMutableArray alloc] init]; 
     serviceBrowser = [[NSNetServiceBrowser alloc] init]; 
     [serviceBrowser setDelegate: delegateObject];   

     searching = NO;   
    } 

    return self;  
} 

- (void)dealloc 
{  
    [services release];  
    [serviceBrowser release]; 
    [super dealloc];  
} 



// Sent when browsing begins 
- (void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)browser 
{  
    searching = YES;  
    [serviceBrowser searchForServicesOfType:@" " inDomain:@"local."]; 
    [self updateUI];  
} 

// Sent when browsing stops 
- (void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)browser 
{  
    searching = NO;  
    [self updateUI];  
} 

// Sent if browsing fails 
- (void)netServiceBrowser:(NSNetServiceBrowser *)browser 
      didNotSearch:(NSDictionary *)errorDict 
{  
    searching = NO;  
    [self handleError:[errorDict objectForKey:NSNetServicesErrorCode]];  
} 

// Sent when a service appears 
- (void)netServiceBrowser:(NSNetServiceBrowser *)browser 
      didFindService:(NSNetService *)aNetService 
       moreComing:(BOOL)moreComing 
{  
    //[services addObject:aNetService]; 
    if (![services containsObject:aNetService]) { 
     [self willChangeValueForKey:@"services"]; 
     [services addObject:aNetService]; 
     [self didChangeValueForKey:@"service"]; 
    } 
    if(!moreComing)   
    {  
     [self updateUI];   
    }  
} 

// Sent when a service disappears 
- (void)netServiceBrowser:(NSNetServiceBrowser *)browser 
     didRemoveService:(NSNetService *)aNetService 
       moreComing:(BOOL)moreComing 
{ 
    //[services removeObject:aNetService]; 
    if ([services containsObject:aNetService]) { 
     [self willChangeValueForKey:@"service"]; 
     [services removeObject:aNetService]; 
     [self didChangeValueForKey:@"service"]; 
    } 
    if(!moreComing)   
    {  
     [self updateUI];  
    } 
} 

// Error handling code 
- (void)handleError:(NSNumber *)error 
{  
    NSLog(@"An error occurred. Error code = %d", [error intValue]); 

    // Handle error here  
} 



// UI update code 
- (void)updateUI 
{ 

    if(searching)   
    {   
     // Update the user interface to indicate searching 
     for(Class obj in services){ 
      NSLog(@"service found %@", obj); 
     } 
     // Also update any UI that lists available services 

    }  
    else   
    {   
     // Update the user interface to indicate not searching   
    } 

} 


@end 

如何执行这样的任务任何好的教程?

预先感谢所有帮助

回答

0

您将需要两个网络设备和您的iPad被说同样的协议。您需要选择适当的协议。这听起来像你想要做的是文件传输 - 有许多协议,可以处理这一点,在库中执行的iOS:
- WebDAV的
- HTTP
- FTP
- SFTP
- AFP
- SAMBA
为了使设备能够检测到彼此,你需要使用像苹果的Bonjour

+0

谷歌是你的朋友,搜索“iOS版的Bonjour教程”想出了一吨的结果,其中包括:HTTP:// mobileorchard .COM /教程 - 网络 - 和Bonjour的上iphone / – davecom 2012-02-01 23:11:20