iphone - CFWriteStreamWrite/CFReadStreamWriter 容易超时吗?

标签 iphone objective-c ios sockets network-programming

使用 CFStreamCreatePairWithSocketToHost 总是很方便:

CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,
        (CFStringRef) hostnameOrIp,
        aPort,
        &readStream,
        &writeStream);

因为它会立即为您提供 cargo (r 和 w 管道)。不幸的是 CFReadStreamReadCFWriteStreamRead 阻塞。有没有一种干净的方法来设置超时(例如使用 streamOption)?它们在一个线程中运行——因为有相当多的并行操作——希望避免运行循环/信号——因为任何其他挂起的读/写不应该被中断。

谢谢,

数据。

最佳答案

您可以使用 CFReadStreamHasBytesAvailable 来检查是否有可用的东西。如果是,CFReadStreamRead 将不会阻塞。或者您可以设置客户端(CFReadStreamSetClient)并监听通知(在您的情况下为kCFStreamEventHasBytesAvailable)。

关于iphone - CFWriteStreamWrite/CFReadStreamWriter 容易超时吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693864/

相关文章:

ios - UIView 成为可见委托(delegate)

ios - 一个 View Controller 中的两个表

iphone - 在 Objective-C 中是否有一个好的/最好的方法来扩展嵌套类?

ios - 当我向我的 friend ios xcode 发送邀请时,在 facebook 中看不到通知

ios - 有没有办法知道用户在使用我的应用程序时是否正在通话?

iphone - 如何使用设备原生功能从 HTML5 网页发起/发送短信?

iphone - 我可以避免将 Twitter API 消费者 secret 烘焙到我的 iPhone 应用程序二进制文件中吗?

ios - 每当我将文件添加到项目时,XCode 都会崩溃

ios - 禁用 opengl es 纹理 ios

ios - Swift:非托管 AVAudioPlayer