- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 cocoa 应用程序,我想在其中使用 UNIX 域套接字与系统范围的守护进程进行通信。
第一步,我的客户端将连接到守护程序,然后监听来自守护程序的传入日志语句。
我发现的示例,来自 Apple 的 CFLocalServer,使用 CFSockets
在两个命令行实用程序之间进行通信。我能够很好地设置代码的守护进程部分,因为我可以自由决定在守护进程中调用哪个函数( [[NSRunLoop currentLoop] run]
或 CFRunLoopRun()
)。不过,我对客户端有疑问,它是一个 cocoa 应用程序。
在代码示例中,客户端首先创建它们,连接,将它们作为源添加到当前 CFRunLoop
进行监听操作,然后调用CFRunLoopRun();
直到被 CFRunLoopStop(CFRunLoopGetCurrent());
取消
我的问题是:我可以在 Objective-C cocoa 应用程序创建的串行调度队列上的 block 内完成所有这些操作,而不干扰应用程序主线程中的 NSRunLoop 吗?
最佳答案
是的,您可以这样做,尽管您可能只想将套接字附加到主运行循环并让它正常运行(即不要调用 CFRunLoopRun()
因为它已经在运行) .
我还会查看GCDAsyncSocket如果您的需求很复杂,那么这是所有此类工作的一个非常好的包装。它目前不支持 unix 域套接字,但您可以使用 jdiehl's socketUN branch添加它。
关于objective-c - 在 Cocoa 应用程序上调用 CFRunLoop 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306807/
我有一个 Cocoa UI 应用程序,需要在其 UI 事件循环的其余部分允许的情况下尽可能快地更新其主窗口,因此我通过 CFRunLoopObserver 实现了主更新程序函数。我还有一个应用程序模式
我正在使用第三方框架在 Swift 中编写一个命令行应用程序,该框架(如果我正确理解代码)依赖 GCD 回调在套接字接收数据时完成某些操作。为了更好地理解该框架,我一直在尝试框架作者为配合该框架而编写
ViewController.h @interface ViewController : UIViewController{ CFSocketRef s; int connectFlag; } Vie
从 C/C++ 程序中向 CFRunLoop 添加即时一次性任务的最简单方法是什么,即在运行循环阻塞之前必须调用的回调再次。 根据文档,我们有 CFRunLoopPerformBlock(),但它的问
我正在使用第三方框架在 Swift 中编写命令行应用程序,该框架(如果我正确理解代码)依赖于 GCD 回调来在套接字接收数据时完成某些操作。为了更好地理解该框架,我一直在研究框架作者为配合该框架而编写
应用有时会崩溃,我无法重现这种情况。我正在尝试检查日志并找出导致崩溃的代码块。下面是我崩溃的主要威胁。我认为 CFRunLoop Is Calling Out To A Source0 Perform
我正在 iPhone 中录制音频.. 这是我的音频队列对象 AudioQueueNewInput( &audioDescription,
我有一个 cocoa 应用程序,我想在其中使用 UNIX 域套接字与系统范围的守护进程进行通信。 第一步,我的客户端将连接到守护程序,然后监听来自守护程序的传入日志语句。 我发现的示例,来自 Appl
Java Android 中的 CFRunLoop 或 NSRunLoop。 乍一看(和 IOS 文档)CFRunLoop 似乎等同于 Android 中的处理程序和 Looper...但它也用于接收
我是一名优秀的程序员,十分优秀!