簡體   English   中英

在服務器端解析NSNetService

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM