我刚刚开始编写一个小型 iPhone/iPad 应用程序来浏览网络存储并希望搜索可用磁盘。我认为我在 CFNetService 和相关功能方面走在了正确的轨道上,但在这一点上我希望能得到一些帮助:
有人介意在 Apple 文档的以下示例中的“gServiceBrowserRef”设置中的“MyBrowseCallBack”中发布一个 CFNetServiceCallBack 函数的示例:
static Boolean MyStartBrowsingForServices(CFStringRef type, CFStringRef domain) {
CFNetServiceClientContext clientContext = { 0, NULL, NULL, NULL, NULL };
CFStreamError error;
Boolean result;
assert(type != NULL);
gServiceBrowserRef = CFNetServiceBrowserCreate(kCFAllocatorDefault, MyBrowseCallBack, &clientContext);
assert(gServiceBrowserRef != NULL);
CFNetServiceBrowserScheduleWithRunLoop(gServiceBrowserRef, CFRunLoopGetCurrent(), kCFRunLoopCommonModes);
result = CFNetServiceBrowserSearchForServices(gServiceBrowserRef, domain, type, &error);
if (result == false) {
// Something went wrong so lets clean up.
CFNetServiceBrowserUnscheduleFromRunLoop(gServiceBrowserRef, CFRunLoopGetCurrent(), kCFRunLoopCommonModes); CFRelease(gServiceBrowserRef);
gServiceBrowserRef = NULL;
fprintf(stderr, "CFNetServiceBrowserSearchForServices returned (domain = %d, error = %ld)\n", error.domain, error.error);
}
return result;
}
老实说,我正在阅读文档!只是我个人发现很难研究这个主题(我第一次涉足网络编码),只是想在正确的方向上稍微推动一下。即使它只是显示“MyBrowseCallBack”所需函数签名的示例