gpt4 book ai didi

objective-c - 当客户端断开连接时如何获取 NSNetService 通知?

转载 作者:行者123 更新时间:2023-12-03 17:21:26 25 4
gpt4 key购买 nike

我对 Objective-C/Cocoa 有点陌生,我正在尝试编写一个 bonjour 服务器客户端应用程序。因为我没有太多经验,所以如果您的回复还可以包括如何操作的解释,而不仅仅是代码,我将不胜感激。

我设法使用服务器的 netService:didAcceptConnectionWithInputStream:outputStream 方法在服务器和客户端之间建立连接和输入输出流。

问题是,我希望服务器拥有所有已连接客户端的列表。我知道客户端的 NSNetServiceBrowserDelegate 有一个方法,只要与 bonjour 服务的连接结束,该方法就会被撤销,但我找不到可以在服务器端使用 NSNetServiceDelegate 的同等方法,以便在客户端断开连接时运行适当的代码。

最佳答案

查看流编程指南。基本上,您将使用 NSStream (或其子类),并且需要创建委托(delegate)并将其分配给您的流。流委托(delegate)应该处理一种方法——stream:handleEvent:该方法是一个回调,它将为您提供以下 NSStreamStatus 指示之一(类型定义的 NSUInteger)

typedef enum {
NSStreamStatusNotOpen = 0,
NSStreamStatusOpening = 1,
NSStreamStatusOpen = 2,
NSStreamStatusReading = 3,
NSStreamStatusWriting = 4,
NSStreamStatusAtEnd = 5,
NSStreamStatusClosed = 6,
NSStreamStatusError = 7
};

在委托(delegate)方法的实现中,您基本上创建了一个 switch-case 语句,该语句执行您需要执行的任何操作以响应更改。

关于objective-c - 当客户端断开连接时如何获取 NSNetService 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25682538/

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