iOS網絡編程-iOS中解析Bonjour服務

服務器端Bonjour服務發佈成功之後,客戶端可以通過NSNetService解析服務,解析成功後,可以獲得通訊的數據細節,如:IP地址、端口等信息。

首先需要實例化NSNetService對象代碼如下:

  1. -(id)init {  
  2.   
  3. _service = [[NSNetService alloc] initWithDomain:@”local.”  
  4.   
  5. type:@”_tonyipp._tcp.” name:@”tony”];  
  6.   
  7. [_service setDelegate:self];  
  8.   
  9. //設置解析地址超時時  
  10.   
  11. [_service resolveWithTimeout:1.0];  
  12.   
  13. _services = [[NSMutableArray alloc] init];  
  14.   
  15. return self;  
  16.   
  17. }  


實例化NSNetService對象的構造方法是– initWithDomain:type:name:,不需要指定它的端口。解析服務需要調用[_service resolveWithTimeout:1.0]語句,開始解析服務,在規定的時間裏進行解析,參數是單位是秒。

  1. #pragma mark - NSNetServiceDelegate Methods  
  2.   
  3. - (void)netServiceWillResolve:(NSNetService *)netService {  
  4.   
  5. NSLog(@”netServiceWillResolve”);  
  6.   
  7. }  
  8.   
  9.    
  10.   
  11. - (void)netServiceDidResolveAddress:(NSNetService *)netService {  
  12.   
  13. NSLog(@”netServiceDidResolveAddress”);  
  14.   
  15. [_services addObject:netService];  
  16.   
  17. }  
  18.   
  19.    
  20.   
  21. - (void)netService:(NSNetService *)netService didNotResolve:(NSDictionary *)errorDict {  
  22.   
  23. NSLog(@”didNotResolve: %@”,errorDict);  
  24.   
  25. }  


netServiceWillResolve:方法在解析開始時回調,解析成功時回調netServiceDidResolveAddress:方法,解析失敗時回調netService:didNotResolve:方法。

發佈了41 篇原創文章 · 獲贊 5 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章