[英]Resolving NSNetService on server side
我在解決NSNetService
問題。 當NSNetServiceBrowser
找到該服務時,我已經成功解析了NSNetService
。
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing{
if (![self.services containsObject:aNetService]) {
[aNetService setDelegate:self];
[aNetService resolveWithTimeout:5.0];
}
}
那么這個方法被成功調用
-(void)netServiceDidResolveAddress:(NSNetService *)sender{
NSArray *addresses = [ns addresses];
NSDictionary* dict = [NSNetService dictionaryFromTXTRecordData:[sender TXTRecordData]];
// Here both values are ok
}
但我想將NSNetService解析到服務器端,以獲取在其上發布該服務的IP地址。
-(void)netServiceDidPublish:(NSNetService *)ns{
[ns setDelegate:self];
[ns resolveWithTimeout:5.0];
}
但是這里沒有調用此方法。
-(void)netServiceDidResolveAddress:(NSNetService *)sender{
}
但是我這樣做
-(void)netServiceDidPublish:(NSNetService *)ns
{
NSArray *addresses = [ns addresses]; // this gives null
// this also gives null
NSDictionary* dict = [NSNetService dictionaryFromTXTRecordData:[sender TXTRecordData]];
}
但是值是null
。
如果可以的話,請幫助我。 任何幫助將不勝感激。 提前致謝。
前幾天也有這個問題,花了我一段時間才解決。 由於某些原因,我需要將aNetService分配給屬性。
# Declare a NSNetService property in the .h or further up .m file
@property (strong, nonatomic) NSNetService *currentService;
# In the .m file.
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing{
if (![self.services containsObject:aNetService]) {
self.currentService = aNetService;
[self.currentService setDelegate:self];
[self.currentService resolveWithTimeout:5.0];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.