iOS:FTP TLS连接

时间:2010-10-07 16:47:02

标签: iphone objective-c ftp ios inputstream

我的iPhone-App需要FTP TLS连接。正常的FTP连接工作正常。但我还需要一个安全的TLS连接。 我使用了Apple的SimpleFTPSample代码用于iPhone:

ftpStream = CFReadStreamCreateWithFTPURL(NULL, (CFURLRef) url);
self.networkStream = (NSInputStream *) ftpStream;

[self.networkStream retain];
self.networkStream.delegate = self;


CFReadStreamSetProperty((CFReadStreamRef)self.networkStream, kCFStreamPropertyFTPUserName, (CFStringRef)@"ftpuser");
CFReadStreamSetProperty((CFReadStreamRef)self.networkStream, kCFStreamPropertyFTPPassword, (CFStringRef)myFTPPassWord);


[self.networkStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.networkStream open];

这适用于普通的FTP连接。

但是如何设置TLS连接? 我不确定我需要什么以及TLS连接是否有效?

我尝试了一些代码:

NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithCapacity:5];
[settings setObject:(NSString *)NSStreamSocketSecurityLevelTLSv1 forKey:(NSString *)kCFStreamSSLLevel];
[settings setObject:[NSNumber numberWithBool:YES] forKey:(NSString *)kCFStreamSSLAllowsAnyRoot];
CFReadStreamSetProperty((CFReadStreamRef)self.networkStream, kCFStreamPropertySSLSettings, (CFTypeRef)settings);

但没有任何成功。请有人帮帮我。 我需要一个FTP TLS连接,它受FTP用户名和FTP密码保护。

谢谢!

1 个答案:

答案 0 :(得分:0)

当您说“FTP TLS”时,我认为您的意思是RFC 4217?我很确定CFStream不支持该协议。你必须自己建立它。您可能希望将libcurl视为一个很好的解决方案。我对管理TFTP感到非常满意。