1

我正在尝试使用 Apple 提供的 SimpleFTPSample 代码将 .txt 文件上传到服务器。错误是

发送

流打开错误

错误:操作无法完成。(kCFErrorDomainCFNetwork 错误 200。)

错误出现在- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode方法中,具体为:

    case NSStreamEventErrorOccurred: {
        NSError *theError = [aStream streamError];
        [self stopSendWithStatus:@"Stream open error"];
        NSLog(@"The error: %@", [theError localizedDescription]);
    } break;

(Apple 提供的 PutController.m 的第 251 行,可在此处找到)

我看过这个问题和其他几个喜欢它的人,我遇到了同样的问题。我还尝试使用该问题中的解决方案来纠正该问题,但没有成功。这包括使用以下方法切换主动/被动流属性:

[self.networkStream setProperty:(id)kCFBooleanFalse forKey:(id)kCFStreamPropertyFTPUsePassiveMode];

服务器地址似乎正确。它确实需要凭据,并且它们是正确的。它确实允许我通过浏览器登录。我还有一个 android 应用程序可以上传到同一个地方。提供的简单 FTP 代码可以:

  • 在服务器上创建目录
  • 在服务器上创建一个 0 字节的文件
  • 从默认地址检索文件(Apple 在 NASA ftp 服务器上提供图像的 URL,可以使用该应用程序下载和查看)

但是,它不能:

  • 从服务器下载文件(打开流错误)
  • 向创建的文件添加数据(打开流错误)

我正在使用 Xcode 4.6.3 和 iOS SDK 6.1。这在模拟器和 iPhone 4 设备上都可以重现。我有权访问服务器管理员权限。

4

0 回答 0