首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cocoa应用程序上调用CFRunLoop家族

在Cocoa应用程序上调用CFRunLoop家族
EN

Stack Overflow用户
提问于 2013-04-30 18:40:44
回答 1查看 964关注 0票数 0

我有一个可可应用程序,在这个应用程序中,我想使用UNIX域套接字与一个系统范围的守护进程进行通信。

在第一步中,我的客户端将连接到守护进程,然后侦听来自守护进程的日志语句。

我找到的示例是来自苹果的CFLocalServer,它使用CFSockets在两个命令行实用程序之间进行通信。我能够很好地设置代码的守护进程部分,因为我可以自由地决定在我的守护进程([[NSRunLoop currentLoop] run]CFRunLoopRun())中调用哪个函数。然而,我对客户有疑问,因为客户是可可应用程序。

在代码示例中,客户端首先创建它们,连接它们,并将它们作为源添加到当前的CFRunLoop中进行侦听操作,然后调用CFRunLoopRun();,直到CFRunLoopStop(CFRunLoopGetCurrent());取消为止。

,我的问题是:可以在一个由Objective可可应用程序创建的串行调度队列的块内完成所有这些工作,而不会干扰应用程序主线程中的NSRunLoop吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 23:23:07

是的,您可以这样做,尽管您可能只想将套接字附加到主运行循环并让它正常运行(即,不要调用CFRunLoopRun(),因为它已经在运行)。

如果您的需求很复杂,我还将查看GCDAsyncSocket,它是所有此类工作的一个非常好的包装器。它目前不支持unix域套接字,但是可以使用添加它的jdiehl氏socketUN分支

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16306807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档