New*_*bee 23 iphone cocoa-touch nsstream ios
我一直在努力NSStreamDelegate,我已经实现了回调,我已经初始化了输入和输出流ilke这个...
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStringRef host = CFSTR("74.125.224.72");
UInt32 port = 2270;
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &inputStream, &writeStream);
if (writeStream && inputStream) {
inputStream = (__bridge NSInputStream *)readStream;
[inputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
outputStream = (__bridge NSOutputStream *)writeStream;
[outputStream setDelegate:self];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream open];
}
Run Code Online (Sandbox Code Playgroud)
即使在打开之后,两个流callback(stream:(NSStream *)theStream handleEvent:)都不会调用NSStreamEventOpenCompleted流.任何人都可以帮助我,我在这里做错了什么.或者有什么可能性NSStreamEventOpenCompleted不会被调用,我在文档中看到,如果打开失败,它将不会调用它,如果是这样,为什么打开流失败.任何的想法?
谢谢你的帮助.
我使用非常相似的代码,它对我来说效果很好。尝试下面的代码。
NSString* host = @"192.168.2.105";
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
UInt32 port = 8008;
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef)(host), port, &readStream, &writeStream);
if (writeStream && readStream) {
self.InputStream = (__bridge NSInputStream *)readStream;
[self.InputStream setDelegate:self];
[self.InputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.InputStream open];
self.OutputStream = (__bridge NSOutputStream *)writeStream;
[self.OutputStream setDelegate:self];
[self.OutputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.OutputStream open];
}
Run Code Online (Sandbox Code Playgroud)
如果它不适合您,我可以向您发送一个实现 TCP 客户端和服务器的小应用程序作为示例。
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |