2010-10-19 46 views

回答

2

在你-stream:handleEvent:委托方法,当您收到NSStreamEventHasSpaceAvailable事件为NSOutputStream,您可以使用发送数据:

NSData *data = /* get some data… */; 
const uint8_t *buffer = [data bytes]; 
NSUInteger length = [data length]; 
NSInteger nwritten = [outputStream write:buffer maxLength:length]; 
if (-1 == nwritten) { 
    NSLog(@"Error writing to stream %@: %@", outputStream, [outputStream streamError]); 
} else { 
    NSLog(@"Wrote %ld bytes to stream %@.", (long)nwritten, outputStream); 
} 
+0

嗨,我已经尝试过的代码,但我有错误“错误写入流<__ NSCFOutputStream:0x102009f0>:错误域= NSPOSIXErrorDomain代码= 9“该操作不能完成。错误的文件描述符”做任何人都知道这个问题呢? – tan 2010-10-19 04:31:06

+0

这听起来像它不是由一个文件描述符的支持。你有没有打开流?你是想描述从委托回调写? – 2010-10-19 04:50:03

+0

嗨,我已经使用了下面的代码打印出它返回流状态“2”,所以我猜流是开放的:\t的NSLog(@“OutputStream的状态:%I”,[OutputStream的流状态]); – tan 2010-10-19 05:26:10