使用可可连接到本地网络上的设备
问题描述:
我一直在尝试为我的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
如何执行这样的任务任何好的教程?
预先感谢所有帮助
答
您将需要两个网络设备和您的iPad被说同样的协议。您需要选择适当的协议。这听起来像你想要做的是文件传输 - 有许多协议,可以处理这一点,在库中执行的iOS:
- WebDAV的
- HTTP
- FTP
- SFTP
- AFP
- SAMBA
为了使设备能够检测到彼此,你需要使用像苹果的Bonjour
谷歌是你的朋友,搜索“iOS版的Bonjour教程”想出了一吨的结果,其中包括:HTTP:// mobileorchard .COM /教程 - 网络 - 和Bonjour的上iphone / – davecom 2012-02-01 23:11:20