NSNetService 表示一个网络服务。可以代表你的应用程序发起的一个网络服务(也可以是别人的一个网络服务)。
这个类的主要功能:1.可以让应用程序发布服务 2.可以解析对应服务的套接字地址。
NSNetServiceBrowser 类用来获取网络上的网络服务对象(NSNetService)。
获取对应的NSNetService对象后,就可以去进行连接等操作
简单的使用步骤(以局域网对战为例):
玩家A来创建房间:
- 初始化创建NSNetService实例。
- (instancetype)initWithDomain:(NSString *)domain type:(NSString *)type name:(NSString *)name port:(int)port;
(注:默认创建完后,该实例对象是在当前线程的Runloop的默认mode下运行等待的。)
- 将我们创建的服务(NSNetService实例)发布出去
这两个方法都可以。
- (void)publish; // 发布使用默认配置
- (void)publishWithOptions:(NSNetServiceOptions)options; // 可以自定义更多的设置
3.等待玩家B的进入。
4.玩家B首先要获取网络上的所有网络服务。
NSNetServiceBrowser 实例化,并设置代理。
5.玩家B选择其中一个网络服务,开始解析对应的服务地址。
NSNetService *service = ……;
service.delegate = self;
[service resolveWithTimeout:20];
6.在service的代理回调里获取对应服务的地址,然后利用socket进行连接。