我一直在尝试为我的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有没有关于如何执行这类任务的好教程?
提前感谢你的帮助
发布于 2012-02-01 18:46:07
您需要网络设备和您的iPad使用相同的协议。您需要选择适当的协议。听起来你想要做的是文件传输--有很多协议可以处理这个问题,这些协议都是在iOS库中实现的:
为了让这些设备互相检测,你需要使用苹果的Bonjour之类的设备
https://stackoverflow.com/questions/9093107
复制相似问题