iOS客户端开启FTP,其他设备访问手机本地文件操作实现

因为项目需要,需要在手机端搭建FTP服务,让其他设备来访问手机某个路径文件夹下边的文件,实现下载功能。
主要实现借助第三方库XMFTPServer, 原来文件有修改,实现带用户名、密码访问连接FTP。

首先封装FTPManager,便于其他地方使用
.h 文件部分代码

#import "XMFTPServer.h"
@interface FTPManager : NSObject
/***  服务器ftpServer;*/
@property (nonatomic, strong) XMFTPServer *ftpServer;
/***  是否有用户连接*/
@property (nonatomic, assign) BOOL isLink;/***  创建ftpServer管理类单例*/
+ (instancetype)sharedManager;/***  主动断开链接*/
- (void)disconnect;/***  开放端口*/
- (void)portDispark;
@end
.m 文件部分代码

@implementation FTPManager/**  */
+ (instancetype)sharedManager {static FTPManager *_ftpManager = nil;static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{_ftpManager = [[FTPManager alloc] init];});return _ftpManager;
}/** 主动断开链接 */
- (void)disconnect {[self.ftpServer stopFtpServer];self.isLink = NO;
}/** 开放端口,监听ftp用户 */
- (void)portDispark {//默认开放端口为20000unsigned ftpPort = 20000;NSString *basePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];self.ftpServer = [[XMFTPServer alloc] initWithPort:ftpPort withDir:basePath notifyObject:self];NSLog(@"FTP服务器地址:%@", [NSString stringWithFormat:@"ftp://%@:%u", [ManagerTool getIPAddress],ftpPort]);
}
/** 监听登录用户 */
- (void)currentUserLogin {self.isLink = YES;NSLog(@"有FTP用户登录进来了");
}
@end

由于开放FTP需要设置账户、密码, 需要在XMFTPServer源文件作出修改。

 XMFTPConnection.m中需要做修改, 修改代码如下

-(void)doUser:(id)sender arguments:(NSArray*)arguments
{// send out confirmation message -- 331 password required forif ( currentUser != nil )currentUser = [NSString new];currentUser =  [arguments objectAtIndex:1];NSString *outputString = [[NSString alloc] init];if([[arguments objectAtIndex:1] isEqualToString:@"用户名"]){outputString = [ NSString stringWithFormat:@"331 Password required for %@", currentUser ];[[NSNotificationCenter defaultCenter] postNotificationName:@"currentUserLogin" object:nil];}else{outputString = @"530 Invalid username\n";}[ sender sendMessage:outputString];
}

-(void)doPass:(id)sender arguments:(NSArray*)arguments
{NSString *pass = [ arguments objectAtIndex:1 ];NSString *outputString = [[NSString alloc] init];if([pass isEqualToString:@"密码"]){outputString = [ NSString stringWithFormat:@"230 User %@ logged in.", currentUser ];}else{outputString = @"500 Invalid username or password\n";}[ sender sendMessage:outputString];
}

基本实现iOS开放设置携带用户名、密码的服务,其他设备可访问移动端本地文件。

iOS客户端开启FTP,其他设备访问手机本地文件操作实现相关推荐

  1. 云服务器连接手机本地文件夹,云服务器连接手机本地文件

    云服务器连接手机本地文件 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe. ...

  2. 怎么上传ftp服务器文件,ftp服务器如何上传本地文件

    ftp服务器如何上传本地文件 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存 ...

  3. 对路径XXX的访问被拒绝(文件操作权限)的解决方法

    对路径XXX的访问被拒绝(文件操作权限)的解决方法 参考文章: (1)对路径XXX的访问被拒绝(文件操作权限)的解决方法 (2)https://www.cnblogs.com/armyant/arch ...

  4. linux网页用php文件怎么打开文件夹,如何使用浏览器访问linux本地文件

    原标题:如何使用浏览器访问linux本地文件 背景 因搜狗商城代码覆盖率报告均部署到服务器中,但是在服务器中无法使用浏览器查看html文件,因此使用Nginx配置一个静态web服务器,在本地通过浏览器 ...

  5. 使用移动设备访问电脑本地项目教程

    一.准备 电脑和移动设备需在同一个局域网下,可以用移动设备给电脑提供热点,这里移动设备以手机为例,电脑以 Windows 为例. 本次测试项目为PHP框架ThinkCMF,环境使用 PhpStudy ...

  6. js 判断是否为 Android IOS IPAD IPHONE 等移动设备访问

    <script type="text/javascript"> var browser={ versions:function(){             var u ...

  7. iOS 客户端接口报错信息处理(未能完成该操作。软件导致连接中止 或者是 Software caused connection abort Code 53)

    一.问题分析 最近客户端在监测接口报错收到了很多关于此类的错误,具体表现如下图 还有一些接口同样的报错,这里我只截取了2个比较多的接口,此类的接口调用大多数是要跳出App进行一些业务的处理.例如微信登 ...

  8. [转]NGINX-检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点...

    原文地址:https://blog.51cto.com/10978134/2163757 检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点 此配置方法由Detect Mobile ...

  9. 风云的银光志Silverlight4.0教程之遍历访问客户端用户的本地文件

    微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最 ...

最新文章

  1. 参加Java培训需要注意什么
  2. 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
  3. [BZOJ2616] SPOJ PERIODNI
  4. 学会使用ant design封装一个锚点组件
  5. java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落
  6. CVPR2020 | 阿里结构感知3D目标检测,KITTI BEV 排行榜第一!
  7. Linux常用命令——关机重启命令
  8. mysql 主从特性_mysql 5.6 新特性 主从推延
  9. 利用wsdl.exe生成webservice代理类
  10. 加好友饥荒服务器没有响应,饥荒进不去别人的服务器 | 手游网游页游攻略大全...
  11. 一个程序员的成长之路(持续更新)
  12. git pull 报错:‘info: detecting host provider for’
  13. MySQL学习之MySQL引擎
  14. docker安装nginx kong konga
  15. 380免费云存储_2019年最好的在线照片存储,让你的照片安全存储在云端
  16. 【西行】Java 编程语言简单介绍
  17. FBI树——递归练习
  18. 安卓钉子户的倔强:只有18.3%的用户会考虑换用iPhone 13
  19. win10更新 悦米机械键盘无法输入
  20. PB编程通俗快速入手(自己2002年教别人PB时随手写的,很多年了,放上来送给新手们)

热门文章

  1. 两台windows主机共享文件的方法【简单有效】
  2. 采药问题 c语言程序,采药-题解(C语言代码)
  3. linux桌面入口文件(.desktop)规范
  4. 一、CCD原理及实现方法
  5. 聊聊benchmark测试
  6. 免填邀请码解决方案,提高APP推广效率
  7. Beyond Compare忽略时间对比
  8. viewpager禁止左右滑动
  9. 一个屌丝程序员的青春(三四六)
  10. 记录:FC-SAN与IP-SAN比较