无法强制取消 ftp 下载

unable to forcefully cancel ftp download

我正在使用 SimpleFTPSample 从 FTP 服务器下载和上传。无论是否完成,我都必须在特定时间后取消下载并开始上传。但是如果我取消下载然后开始上传委托方法 stream:handleEvent: 不会被调用。 如果在下载完成后开始上传,将调用委托方法。

我无法理解原因。我正在为这两个任务创建单独的连接。

由于我们需要调度runloop来处理网络流,而当我们强制取消下载时runloop没有退出,是这个原因吗?

我是否需要在单独的线程中启动这两个操作,以便在特定时间后开始上传?

我可以通过将 kCFStreamPropertyFTPAttemptPersistentConnection 属性 设置为 kCFBooleanFalse 来解决我的问题。 默认情况下,此 属性 为真,因此如果我们强行关闭它,连接不会中断。实际归功于 this 给出答案的人。