无法在CFWriteStreamWrite上写入

我在向CFStream写入数据时遇到了麻烦。

// i am getting the CFSocketRef and then from it getting native Handle. CFSocketNativeHandle sock = CFSocketGetNative( [appDelegate getSocketRef]); 

上面的代码是否返回了与创build的套接字相同的处理程序?我写入stream中的内容将写入创build的套接字中?

 // and then wrote CFStreamCreatePairWithSocket(kCFAllocatorDefault, sock, &readStream, &writeStream); if (!readStream || !writeStream) { // close([appDelegate TCPClient]); // close(sock); fprintf(stderr, "CFStreamCreatePairWithSocket() failed\n"); return; } 

上面的工作正常,它不给我失败的消息

 // does not give error ,else portion is executed if (!CFWriteStreamOpen(writeStream)) { CFStreamError myErr = CFWriteStreamGetError(writeStream); // An error has occurred. if (myErr.domain == kCFStreamErrorDomainPOSIX) { // Interpret myErr.error as a UNIX errno. NSLog(@"kCFStreamErrorDomainPOSIX"); } else if (myErr.domain == kCFStreamErrorDomainMacOSStatus) { // Interpret myErr.error as a MacOS error code. OSStatus macError = (OSStatus)myErr.error; // Check other error domains. NSLog(@"kCFStreamErrorDomainMacOSStatus"); } }else /* Send the connect call to stream */ // while (send_len < (originalLength + 1)) { // if (CFWriteStreamCanAcceptBytes(writeStream)) { //UInt8 buf[] = "Hello, world";//(unsigned char *) "connectStream" //CFIndex bufLen = (CFIndex)strlen(buf); bytes = CFWriteStreamWrite(writeStream, (unsigned char *) connectStream, originalLength ); NSLog(@"%@",[[NSString alloc] initWithData:connectStream encoding:NSASCIIStringEncoding] ); if (bytes < 0) { fprintf(stderr, "CFWriteStreamWrite() failed\n"); // close(sock); return; } send_len += bytes; } // close(sock); CFReadStreamClose(readStream); CFWriteStreamClose(writeStream); return; } 

CFWriteStreamCanAcceptBytes总是返回false,所以我已经评论它,直接写了字节,它阻止了调用,并没有返回任何东西,没有任何字节写入到stream,任何人都可以引导我在这个rergard? 有没有其他的方法呢?

问候,阿米尔