Я только начинаю писать небольшое приложение для iPhone / iPad, чтобы просматривать сетевое хранилище и хотеть искать доступные диски. Я думаю, что я на правильном пути с CFNetService и связанными функциями, но я хотел бы немного помочь на этом этапе:
Может, кто-то возражает опубликовать пример функции CFNetServiceCallBack, как в «MyBrowseCallBack», который находится в настройке «gServiceBrowserRef» в следующем примере из документа Apple:
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»