iOS客户端开启FTP,其他设备访问手机本地文件操作实现
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,其他设备访问手机本地文件操作实现相关推荐
- 云服务器连接手机本地文件夹,云服务器连接手机本地文件
云服务器连接手机本地文件 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe. ...
- 怎么上传ftp服务器文件,ftp服务器如何上传本地文件
ftp服务器如何上传本地文件 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存 ...
- 对路径XXX的访问被拒绝(文件操作权限)的解决方法
对路径XXX的访问被拒绝(文件操作权限)的解决方法 参考文章: (1)对路径XXX的访问被拒绝(文件操作权限)的解决方法 (2)https://www.cnblogs.com/armyant/arch ...
- linux网页用php文件怎么打开文件夹,如何使用浏览器访问linux本地文件
原标题:如何使用浏览器访问linux本地文件 背景 因搜狗商城代码覆盖率报告均部署到服务器中,但是在服务器中无法使用浏览器查看html文件,因此使用Nginx配置一个静态web服务器,在本地通过浏览器 ...
- 使用移动设备访问电脑本地项目教程
一.准备 电脑和移动设备需在同一个局域网下,可以用移动设备给电脑提供热点,这里移动设备以手机为例,电脑以 Windows 为例. 本次测试项目为PHP框架ThinkCMF,环境使用 PhpStudy ...
- js 判断是否为 Android IOS IPAD IPHONE 等移动设备访问
<script type="text/javascript"> var browser={ versions:function(){ var u ...
- iOS 客户端接口报错信息处理(未能完成该操作。软件导致连接中止 或者是 Software caused connection abort Code 53)
一.问题分析 最近客户端在监测接口报错收到了很多关于此类的错误,具体表现如下图 还有一些接口同样的报错,这里我只截取了2个比较多的接口,此类的接口调用大多数是要跳出App进行一些业务的处理.例如微信登 ...
- [转]NGINX-检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点...
原文地址:https://blog.51cto.com/10978134/2163757 检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点 此配置方法由Detect Mobile ...
- 风云的银光志Silverlight4.0教程之遍历访问客户端用户的本地文件
微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最 ...
最新文章
- 参加Java培训需要注意什么
- 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
- [BZOJ2616] SPOJ PERIODNI
- 学会使用ant design封装一个锚点组件
- java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落
- CVPR2020 | 阿里结构感知3D目标检测,KITTI BEV 排行榜第一!
- Linux常用命令——关机重启命令
- mysql 主从特性_mysql 5.6 新特性 主从推延
- 利用wsdl.exe生成webservice代理类
- 加好友饥荒服务器没有响应,饥荒进不去别人的服务器 | 手游网游页游攻略大全...
- 一个程序员的成长之路(持续更新)
- git pull 报错:‘info: detecting host provider for’
- MySQL学习之MySQL引擎
- docker安装nginx kong konga
- 380免费云存储_2019年最好的在线照片存储,让你的照片安全存储在云端
- 【西行】Java 编程语言简单介绍
- FBI树——递归练习
- 安卓钉子户的倔强:只有18.3%的用户会考虑换用iPhone 13
- win10更新 悦米机械键盘无法输入
- PB编程通俗快速入手(自己2002年教别人PB时随手写的,很多年了,放上来送给新手们)