介绍
这篇文章主要介绍了怎么使用IOS实现无线传输,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
问题
业务场景上存在需要将手机里的文件,图片传递给其他的设备,
不仅仅局限于传书,资料啥的都有可能传递
方案
最基本的方法:设备之间加个云,设备上传资料到云,云同步资料到各个设备,适用于多设备之间,这个没讲的必要
如果是两设备之间,忽略服务器,怎么搞?联想到图书应用中的无线传书,貌似没云端概念的,怎么做到的?
上菜
采用框架GCDWebServer,通过CocoaPods引入
pod “GCDWebServer",,“~祝辞,3.0“
设置本地接收目录,初始化服务器并启动
override func 那些(_ 动画:Bool), { ,,,super.viewWillAppear(动画) ,,,, ,,,if let filepath =, NSSearchPathForDirectoriesInDomains (.documentDirectory, .userDomainMask,,真的).first as NSString ?, { ,,,,,,,let path =, filepath.appendingPathComponent (“transfer") ,,,,,,,if ! FileManager.default.fileExists (atPath:路径),{ ,,,,,,,,,,,do { ,,,,,,,,,,,,,,,try FileManager.default.createDirectory (atPath:路径,withIntermediateDirectories:,假,,属性:,nil) ,,,,,,,,,,,},{catch ,,,,,,,,,,,,,,,印刷(错误) ,,,,,,,,,,,} ,,,,,,,} ,,,,,,, ,,,,,,,webServer =, GCDWebUploader (uploadDirectory:路径) ,,,,,,,网络服务器? .delegate =自我 ,,,,,,,网络服务器? .allowHiddenItems =,真的 ,,,,,,,网络服务器? .allowedFileExtensions =, (“doc",,“docx",,“xls",,“xlsx",,“txt",,“pdf",,“jpeg",,“jpg"】 ,,,,,,,网络服务器? .title =,“善斋工具“; ,,,,,,,网络服务器? .prologue =,“欢饮使用善斋工具的WIFI管理平台, ,,,,,,,网络服务器? .epilogue =,“善斋书屋制作“ ,,,,,,, ,,,,,,,if 网络服务器? .start(),==,真的,,let address =, IPHelper.deviceIPAdress (),, address.count 祝辞,0,,let port =,网络服务器? .port { ,,,,,,,,,,,ipLb.text =,“1。确保设备在同一局域网,\ n2。上传时勿关闭该页面,\ n3。请网页中输入该地址,\ nhttp://\(地址):\(港)/? ,,,,,,,},{else ,,,,,,,,,,,ipLb.text =,“GCDWebServer not 跑!“ ,,,,,,,} ,,,} }
局域网内获取本机的ip地址,并设置其他设备访问链接
# import & lt; ifaddrs.h> # import & lt; arpa/inet.h> # import & lt;net/if.h> @implementation IPHelper +,(NSString *) deviceIPAdress { ,,,NSString * address =, @"“; ,,,struct ifaddrs * interfaces =,空; ,,,struct ifaddrs * temp_addr =,空; ,,,int success =, 0; ,,,success =, getifaddrs(及接口); ,,,if (success ==, 0),{,//0,表示获取成功 ,,,,,,,temp_addr =,接口; ,,,,,,,while (temp_addr !=, NULL), { ,,,,,,,,,,,如果(,temp_addr→ifa_addr→sa_family ==, AF_INET), { ,,,,,,,,,,,,,,,//,Check if interface is en0 which is 从而wifi connection 提醒,iPhone ,,,,,,,,,,,,,,,if ([[NSString stringWithUTF8String: temp_addr→ifa_name], isEqualToString: @" en0"]), { null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么使用IOS实现无线传输