之前有写过一篇,有关iOS ,socket实现ftp客户端,我自己的一些思路和遇到的问题,这次补充几点。
1,之前有说过,有关上传的问题,收到命令socket返回的150之后,然后开始用数据socket发送文件的二进制数据,数据发送完成之后,因为我用的那个第三方是,GCDAsyncSocket,他这个writedata之后,没有返回结果,不知道是否发送成功,只是我发送的时候,给了一个超时,如果没有发送成功的话,socket会断开连接,然后返回的错误信息是writedata超时,但是如果发送成功的话,我们是不知道的,然后,我们发送完了之后,是需要发送成功之后,才去调用命令socket去接收226的返回的,所以这个地方,我在发送完数据之后,加了一个两秒钟的延时,因为,一般情况下,只要网络正常,两秒足够了,然后本来我发送数据的操作就是放在子线程里执行的,所以不用担心app会卡顿,两秒钟延时之后,我再去断开数据socket,然后调用命令socket去接收,即可,然后会收到226,说明操作成功。
2,下载文件时,因为在下载之前会去获取文件的大小,然后用数据socket去接收数据的时候,自己根据之前拿到的文件大小,去判断,即可知道数据有没有传输完,数据传完之后,把数据socket断开,(下载操作服务端那边会自动断开,保险起见自己再断一次),然后调用命令socket去接收,即可,然后会收到226。