gpt4 book ai didi

ios - 如何 didAcceptConnectionWithInputStream :outputStream: get called?

转载 作者:行者123 更新时间:2023-11-29 10:43:02 25 4
gpt4 key购买 nike

我的第一个问题是如何让 NSNetServiceDelegate 中的 didAcceptConnectionWithInputStream:outputStream: 回调被调用?

跟进问题:尽管我从未收到表明连接已被接受的回调(通过 didAcceptConnectionWithInputStream:outputStream:),但我仍然可以在客户端和服务器之间建立连接吗?

我知道调用 publishWithOptions,同时传入 NSNetServiceListenForConnections 选项应该会导致 NetServiceDelegate 回调(didAcceptConnectionWithInputStream: outputStream:) 被调用。但是,该回调未被调用。

以下是我要发布的步骤:

  1. 创建NSNetService

    self.netService = [[NSNetService alloc] initWithDomain:@""类型:_服务类型姓名:(_姓名==无)? @““: _姓名端口:0];

  2. 在当前runloop中调度服务,默认模式

  3. 将委托(delegate)设置为我的服务器包装器对象
  4. 调用publishWithOptions:NSNetServiceListenForConnections

以下是我浏览服务的步骤:

  1. 创建一个 NSNetServiceBrowser,并将其委托(delegate)设置为我的客户端包装器对象
  2. 为与 NSNetService 相同的服务类型和域调用 searchForServicesOfType
  3. 在 UI 的 UITableView 中列出服务,以允许用户选择服务
  4. 当用户选择服务时,将服务的委托(delegate)设置为我的客户端对象,并在服务上调用 getInputStream:outputSteam:
  5. 在 getInputStream:outputSteam: 返回成功后,我希望 didAcceptConnectionWithInputStream:outputStream: 被调用。然而,这并没有发生。

感谢您的帮助!

最佳答案

问题是 didAcceptConnectionWithInputStream:outputStream: 必须从接受连接的一方调用。

一旦服务可用,您就可以调用获取流

[service getInputStream:&istream outputStream:&ostream]

一旦这种情况发生在接收请求的委托(delegate)方法上

- (void)netService:(NSNetService *)sender didAcceptConnectionWithInputStream:(NSInputStream *)inputStream outputStream:(NSOutputStream *)outputStream 

会被调用

关于ios - 如何 didAcceptConnectionWithInputStream :outputStream: get called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com