1
저는 사용자 정의 코코아 (OSX) 서버와 클라이언트를 보유하고 있으며, 서버는 봉쥬르 서비스를 게시합니다. 클라이언트가 NSNetServiceBrowser
을 사용하여 서버를 검색하도록했지만 어떤 결과도 얻지 못했습니다. 출력이 mdns -B _myservicetype._tcp
이기 때문에 서비스가 게시 된 것을 알고 있습니다. 내 검색 및 게시 코드는 동일한 도메인, 이름 및 유형으로 검색하고 게시하며 Apple 샘플 코드와 거의 동일합니다. 검색 및 위임 방법NSNetServiceBrowser가 존재하지 않는 서비스를 찾지 못했습니다.
service = [[NSNetService alloc] initWithDomain:@"" type:@"_scijs._tcp" name:@"ScienceJeopardyServer" port:4567];
[service publish];
그리고 여기 :
[sbrows setDelegate:self];
[sbrows searchForServicesOfType:@"_scijs._tcp" inDomain:@""];
그리고 여기가 위임 방법은 다음과 같습니다 여기에 게시 코드입니다
-(void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)aNetServiceBrowser {
[self.statusLabel setStringValue:@"Searching for server..."];
[self.serverIndicator setHidden:NO];
[self.serverIndicator startAnimation:self];
}
-(void)netServiceBrowser:aNetServiceBrowser didNotSearch:(NSDictionary *)errorDict {
[self.statusLabel setStringValue:@"Error finding server."];
[self.serverIndicator stopAnimation:self];
[self.serverIndicator setHidden:YES];
}
-(void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)aNetServiceBrowser {
[self.serverIndicator stopAnimation:self];
[self.serverIndicator setHidden:YES];
}
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing {
[aNetServiceBrowser stop];
NSLog(@"Found server.");
[self.statusLabel setStringValue:@"Resolving service..."];
[aNetService setDelegate:self];
[aNetService resolveWithTimeout:10.0];
}
그것의 대부분은 단지 GUI 코드와 NSLogs이다, 아직 나는 GUI 변경이나 NSLog를 얻지 못했습니다. 누구든지 해결책이 있습니까?
대단히 감사 드리며 범위가있는 미묘한 ARC 문제인 것으로 나타났습니다. +1하고 동의하십시오! – Linuxios
그럼 어떻게 해결 했습니까? 나는 똑같은 문제를 겪고있다. –