我是Objective-C / Cocoa的新手,我正在尝试编写一个bonjour服务器 - 客户端应用程序。 因为我没有太多经验,如果您的回复也可以包含有关如何操作的解释,我将不胜感激,而不仅仅是代码。
我设法使用服务器的netService:didAcceptConnectionWithInputStream:outputStream
方法在服务器和客户端之间建立连接和输入输出流。
问题是,我希望服务器拥有所有连接客户端的列表。
我知道客户端的NSNetServiceBrowserDelegate有一个方法,只要与bonjour服务的连接结束就被撤销,
但我无法找到一个与NSNetServiceDelegate
相同的方法,我可以在服务器端使用,以便在客户端断开连接时运行相应的代码。
答案 0 :(得分:0)
查看Stream Programming Guide。 基本上,您将使用NSStream(或其子类),您需要创建并为您的流分配委托。 流委托应该处理一个方法 - stream:handleEvent: 该方法是一个回调,它将为您提供以下NSStreamStatus指示之一(typedefed NSUInteger)
typedef enum {
NSStreamStatusNotOpen = 0,
NSStreamStatusOpening = 1,
NSStreamStatusOpen = 2,
NSStreamStatusReading = 3,
NSStreamStatusWriting = 4,
NSStreamStatusAtEnd = 5,
NSStreamStatusClosed = 6,
NSStreamStatusError = 7
};
在你的委托方法的实现中,你基本上创建了一个switch-case语句,它可以完成你为响应变化而需要做的任何事情。