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