我经常使用「多看」和「掌阅」App 看书,其中有一个共同的功能就是 WiFi 传书,根据 App 的提示在电脑浏览器打开指定的地址,传入文件就可以直接发送到手机上阅读了。

虽然这个功能需求不是很多,但是也对其进行了一下研究,使用 CocoaHTTPServer 框架对其进行实现。

多看」和「掌阅」的 WiFi 传书页面

先看下最后的实现结果:

进入 App 内展示传输数据,默认是没有传输任何文件的,当点击添加按钮在浏览器进行文件传输后,关闭弹框就会发现传入的 2 个文件了。

原理

CocoaHTTPServer 框架能够在 iOS 上建立起一个本地服务器,只要电脑和移动设备连入同一局域网,即可使用电脑访问 iOS 服务器的指定页面,利用 POST 实现文件的上传。

功能实现

导入 CocoaHTTPServer 框架

这里推荐大家使用 cocospods 进行集成,只需在 “Podfile” 填写以下代码:

pod 'CocoaHTTPServer'

如图所示,导入成功

配置 HttpConnectManager 类

创建基于 HTTPConnection 的 MyHTTPConnection 类,用来管理 HttpConnection。

找到 - (void) processStartOfPartWithHeader:(MultipartMessageHeader*) header 方法,修改传入文件的地址为 Document 文件夹

NSString *uploadDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

创建 IPAdress 管理类

创建基于 NSObject 的 DHIPAdress 类,用于获取手机的 IP 地址:

DHIPAdress.h

/*!
* get device ip address
*/
+ (NSString *)deviceIPAdress;

DHIPAdress.m

+ (NSString *)deviceIPAdress {
NSString *address = @"an error occurred when obtaining ip address";
struct ifaddrs *interfaces = NULL;
struct ifaddrs *temp_addr = NULL;
int success = 0;
success = getifaddrs(&interfaces);
if (success == 0) { // 0 表示获取成功
temp_addr = interfaces;
while (temp_addr != NULL) {
if( temp_addr->ifa_addr->sa_family == AF_INET) {
// Check if interface is en0 which is the wifi connection on the iPhone
if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {
// Get NSString from C String
address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
}
}
temp_addr = temp_addr->ifa_next;
}
}
freeifaddrs(interfaces);
return address;
}

传输文件和读取文件

默认进入 App 读取本地 Document 文件夹内的文件,首次进入 App 没有任何数据展示。

点击添加按钮,弹出浏览器的 POST 地址,http://192.168.10.192:58818 端口号为每次随机生成。

浏览器访问 index.html 和 upload.html 来传输文件,传输成功后点击关闭按钮,再次读取本地数据,可以查看到通过浏览器传输到手机的文件列表。

iOS 实现 WiFi 局域网传输文件到 App相关推荐

  1. Android网络编程只局域网传输文件

    Android网络编程只局域网传输文件 首先创建一个socket管理类,该类是传输文件的核心类,主要用来发送文件和接收文件 具体代码如下: ```java1 package com.jiao.file ...

  2. 网上邻居——局域网传输文件

    最近因为疫情严重没事干,在家里弄了个局域网消磨时间. 局域网简介: 局域网是指某一区域内由多台计算机互相连通组成的计算机组,局域网自身相对其他网络传输速度更快,性能更稳定,并且是封闭性 局域网在我们平 ...

  3. 局域网传输文件的一点研究

    洒家的电脑里面有很多电影,但是想躺在床上的时候用Android手机看.一般的清晰度,按照洒家的经验,需要5MB/s以上的速度才可以接受延迟,10MB/s以上的速度比较理想. 以下是洒家对多年来解决这个 ...

  4. updog:一款局域网传输文件的软件

    前言 不知道你是否有过这样 的需求,在局域网传输文件,苦于没有好的软件支持,或者只能单向传输,updog可以完全解决这种问题 安装 pip3 install updog updog是python中的一 ...

  5. 计算机局域网采用的数据传输系统,两台win7系统电脑怎么使用局域网传输文件...

    现如今大家经常要传输文件,传输文件方式有很多,比如:U盘,蓝牙等等,还有一种简单的传输方式就是局域网传输,通常在同一个宿舍里面,家里面或者单位里面都上网了,如果传输大文件使用QQ比较麻烦,而且还占用网 ...

  6. NodeNCU(ESP8266)刷MicroPython固件、连接WiFi并传输文件

    NodeMCU(ESP8266)烧录 MicroPython固件.连接WiFi并传输文件 烧录MicroPython固件 下载MicroPython固件包 准备烧录 开始烧录 NodeMCU连接WiF ...

  7. 怎么使用局域网传输文件

    我们在日常生活中经常会使用到用局域网传输文件,下面我就如何使用局域网传输文件作具体的演示.演示中分别对xp/win7两种类型电脑作了具体的描述.方法是亲自测试的哦!不需要使用飞鸽传书等其它软件,只需要 ...

  8. 局域网传输文件_WinXP系统电脑局域网传输文件的操作方法

    在局域网中,如果使用U盘拷贝文件就太麻烦了,我们可以通过局域网来进行文件的传输,速度快,而且更加方便,那么WinXP系统电脑如何在局域网中传输文件呢?下面给大家分享WinXP系统电脑在局域网中传输文件 ...

  9. 局域网传输文件_【电脑篇】巧借局域网,告别第三方工具便捷实现电脑间的文件传输...

    前言:笔记本和台式机现在已经成为了大多数人的标配,两台电脑相互配合,工作娱乐两不误.但是有时候,需要在两台电脑之间传输文件,我们往往更多的是借助qq传输或借助U盘或移动硬盘等第三方工具.这样其实很不方 ...

最新文章

  1. 【C/C++学院】0831-类与对象的异常/面试100题1-100
  2. python手机连续点击脚本_selenium+python自动化86-循环点击遇到的坑
  3. 2019-2020 ACM-ICPC Brazil Subregional Programming Contest
  4. Java 之单元测试
  5. 超强性能,秒级存储,华为云GeminiDB for Cassandra 正式商用了
  6. 在矩池云上复现 CVPR 2018 LearningToCompare_FSL 环境
  7. php yii应用运维,Windows运维之Windows下用cmd命令实例讲解yii2.0在php命令行中运行的步骤...
  8. GPUImage使用之stillCamera多滤镜
  9. Android 面(被)试(锤)现场还原~
  10. 计算机控制系统第二章答案,计算机控制技术(第2版)部分课后题答案
  11. 用神经网络实现手写数字识别
  12. C#编程打字指法练习
  13. Python基础七 元组、字典、集合
  14. VMware WorkStation5分钟快速安装黑群晖
  15. 203. 移除链表元素 力扣 c语言
  16. 浅谈HTML5和H5区别
  17. 自然语言处理 - ELMo
  18. leetcode 19. 删除链表的倒数第 N 个结点(双指针应用)
  19. 问渠那得清如许,唯有源头活水来
  20. 读书笔记-FLASK-留言板

热门文章

  1. 小米平板1刷独角兽系统、救砖-玩机技巧软件-刷los系统
  2. 小木虫好中的ei期刊图像处理
  3. 全球60个线上学习资源网站分享!
  4. android学习资源大整合(持续更新ing)
  5. CL210管理OPENSTACK网络--开放虚拟网络(OVN)简介
  6. docker logs查看日志
  7. 《Cocos Creator游戏实战》你画我猜中的画板功能
  8. 阳性,阴性,假阳性,假阴性,敏感度,特异性
  9. 易周金融观点:遏制NFT金融化等打下监管良基
  10. 携程2021春招笔试