2009-12-14 2 views
0

У меня нет понятия, как сделать FTPS (FTP через SSL) на iPhone. Я хотел бы использовать следующий код:iPhone FTPS клиент

ftpStream = CFWriteStreamCreateWithFTPURL(NULL, (CFURLRef) url); 
CFWriteStreamSetProperty(ftpStream, kCFStreamPropertyFTPUserName,username); 
CFWriteStreamSetProperty(ftpStream, kCFStreamPropertyFTPPassword,password); 

self.networkStream = (NSOutputStream *) ftpStream;  
[self.networkStream setProperty:NSStreamSocketSecurityLevelSSLv3 forKey:(id)NSStreamSocketSecurityLevelKey]; 

self.networkStream.delegate = self; 
[self.networkStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[self.networkStream open]; 

... 

- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode 
{ 
    NSLog(@"Hello\n"); 
} 

Этот код подключается к серверу, а затем прекращает говорить все вместе. Я также попытался использовать следующее, чтобы установить уровень безопасности

NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys: 
    (NSString *)kCFStreamSocketSecurityLevelSSLv3, kCFStreamSSLLevel, 
    kCFBooleanTrue, kCFStreamSSLAllowsAnyRoot, 
    kCFBooleanFalse, kCFStreamSSLValidatesCertificateChain, 
    hostName, kCFStreamSSLPeerName, 
    kCFBooleanFalse, kCFStreamSSLIsServer, 
    kCFBooleanFalse,kCFStreamSSLValidatesCertificateChain, 
    kCFBooleanTrue, kCFStreamSSLAllowsExpiredCertificates, 
    kCFBooleanTrue, kCFStreamSSLAllowsExpiredRoots, 
    nil]; 
CFWriteStreamSetProperty(ftpStream, kCFStreamPropertySSLSettings, settings); 

Это позволяет мне соединять и передавать данные, но не через SSL.

Любая идея, что я делаю неправильно.

ответ

2

Есть нет встроенных FTPS возможности на iPhone не видит: http://developer.apple.com/iphone/library/technotes/tn2009/tn2152.html

Вы должны построить свою собственную библиотеку FTPS. Я также не осведомлен о какой-либо сторонней FTPS-библиотеке для iPhone, но в приведенной выше статье дается обзор & стратегий, какие возможности для передачи файлов доступны.

0

Вы должны проверить этот пример, от библиотеки для разработчиков IOS, это называется SimpleFTPSample описание говорит:

SimpleFTPSample показывает, как сделать простые операции FTP с помощью NSURLConnection и CFFTPStream API. Он может загрузить файл, используя как NSURLConnection, так и CFFTPStream. Кроме того, он может загрузить файл, список каталог и создать каталог с помощью CFFTPStream.

Надеюсь, это вам поможет.

-2

Вышеуказанные ответы верны: вы должны сделать это самостоятельно, чтобы купить его от Chilkat Software.

Смежные вопросы