ios-IOS FTP多线程下载文件

问题描述

IOS FTP多线程下载文件
具体过程是这样的:
线程里,创建了CFReadStreamCreateWithFTPUR一个流, scheduleInRunLoop然后open.接着就在CFRunLoopRun();接收是在CFNetwork框架里的- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode 中接收并些文件。
这样的线程共有2个,我调试发现 只有一个loop循环里来消息,另一个trap着。下载完一个文件后才能connect第二个,继续下载。
我参看了FTP服务器的状态,只有一个连接。
我要怎么才能在iphone同时实现2个FTP连接呢?
到底CFFTP API 是怎么建立连接的,如何才能建立新的连接。好像只有在stream 返回 connected 的时候才会在服务器上显示连接数为1,尝试在一个线程的Runloop中想办法,从目前的现象看 是hold在一个线程的CFRunLoop上了,推测从RunLoop中能得到只是不同RunLoop之间的切换,无法得到真正的多线程并发。
所以决定从C代码入手,从新实现FTP协议的Client端,但这样会带来一些移植和编译的问题,因为一些Linux下的函数在iphone下并不存在。_

解决方案

用多线程分块从ftp下载文件!
多线程下载文件
FTP多线程下载

时间: 2024-08-10 09:23:45

ios-IOS FTP多线程下载文件的相关文章

java 多线程-为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开

问题描述 为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开 为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开?? package com.miuitust.mutilethread; import java.io.File; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; impor

二进制-Android从FTP服务器下载文件时由传输模式引起的问题

问题描述 Android从FTP服务器下载文件时由传输模式引起的问题 从FTP服务器下载windows系统下编写的二进制文件,下载发现总是少几个字节,后来发现是因为windows系统下换行是0D0A两个字节,而在Unix系统下只有0A一个字节,百度到需要把ftp的传输模式设置为二进制格式,我也按照网上的方法设置了,但是下载文件的这个问题仍然存在,求好心的大神帮帮忙,谢谢! 解决方案 下载FTP服务器上文件java 代码之FTP服务器下载文件从FTP服务器下载文件 解决方案二: 额,这个问题我自己

请问用link如何多线程下载文件从另一台计算机?

问题描述 请问用link如何多线程下载文件从另一台计算机? 请问用link如何多线程下载文件从另一台计算机?是不是分块同时下载?怎么样最快? 解决方案 linq和下载无关,你可以用thread或者threadpool.

ftp服务器下载文件,下载的进度如何显示在进度条(progressbar)上,求方法

问题描述 client.Credentials=newSystem.Net.NetworkCredential("用户名","密码");stringpath=txt_wenjianlj.Text.Trim();stringURLAddress=path;//路径stringreceivePath=@"d:/ftp服务器下载文件/";client.DownloadFile(URLAddress,receivePath+System.IO.Path.

Python实现多线程下载文件方法总结

今天把刚学python时收藏的几篇多线程下载文件的网页看了一下. 实现简单的多线程下载,需要关注如下几点: 1.文件的大小:可以从reponse header中提取,如"Content-Length:911"表示大小是911字节 2.任务拆分:指定各个线程下载的文件的哪一块,可以通过request header中添加"Range: bytes=300-400"(表示下载300~400byte的内容),注意可以请求的文件的range是[0, size-1]字节的. 3

Android实现多线程下载文件的方法_Android

本文实例讲述了Android实现多线程下载文件的方法.分享给大家供大家参考.具体如下: 多线程下载大概思路就是通过Range 属性实现文件分段,然后用RandomAccessFile 来读写文件,最终合并为一个文件 首先看下效果图: 创建工程 ThreadDemo 首先布局文件 threaddemo.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo

android实现多线程下载文件(支持暂停、取消、断点续传)

多线程下载文件(支持暂停.取消.断点续传) 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来即可. 涉及的知识及问题 请求的数据如何分段 分段完成后如何下载和下载完成后如何组装到一起 暂停下载和继续下载的实现(wait().notifyAll().synchronized的使用) 取消下载和断点续传的实现 一.请求的数据如何分段 首先通过HttpURLConne

Android实现多线程下载文件的方法

本文实例讲述了Android实现多线程下载文件的方法.分享给大家供大家参考.具体如下: 多线程下载大概思路就是通过Range 属性实现文件分段,然后用RandomAccessFile 来读写文件,最终合并为一个文件 首先看下效果图: 创建工程 ThreadDemo 首先布局文件 threaddemo.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo

Serv-u FTP多线程下载 获取DOS文件目录

问题描述 用seru-u6.4实现了多线程下载,但是获取目录时,得到的目录格式为Unix格式,而且不知道如何修改.因需要统一完整的时间格式,包括年月日时分.所以改用7.0版本,不过出现了问题,我的多线程下载思路是创建多个线程,每个线程负责一个文件,现在假如创建5个线程,正常是5个线程各自下载一个,然后哪个先下载完成,继续下载未下载的文件,直至结束.但是现在出现的问题是刚开始的5个线程下载完成后,就不在下载其他的,而且停止后在连接serv-u连接不上.所以现在请各位高手,大侠帮忙解决一下,一个问题