我正在开发一个将数据直接上传到 FTP 服务器的应用程序,我正在使用苹果的simpleFTPSample示例。一切正常,除了当我尝试访问本地网络之外的 FTP 时,我无法连接到 FTP 服务器。
我遇到的问题是我需要使用服务器外部 IP。我正在使用通用 IP 连接服务器,但如何将指示传递给代码以使用服务器外部 IP?我是否必须更改NSOutputStream的某些属性或必须做其他事情?
更新:我一直在修改NSOutputStream,例如:
CFWriteStreamRef writeStreamRef = CFWriteStreamCreateWithFTPURL(NULL, ( __bridge CFURLRef) url);
//CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue);
CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyFTPUsePassiveMode,kCFBooleanTrue);
CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyFTPFetchResourceInfo, kCFBooleanTrue);
CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyFTPProxy,kCFNull);
//CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyFTPAttemptPersistentConnection, kCFBooleanTrue);
CFWriteStreamSetProperty(writeStreamRef, kCFStreamSSLIsServer, kCFBooleanFalse);
CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyFTPUserName, (__bridge CFStringRef) self.usernameText.text);
CFWriteStreamSetProperty(writeStreamRef, kCFStreamPropertyFTPPassword, (__bridge CFStringRef) self.passwordText.text);
self.networkStream = ( __bridge_transfer NSOutputStream *) writeStreamRef;
我的猜测是我必须对NSOutputStream或NSUrlConnection做一些事情,但我找不到任何地方。