2012-02-01 108 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

相關問題