当前位置: 首页 > news >正文

【原创】简单的局域网内无线文件传输(1)

在正文开始之前,我想发发牢骚吧,最近手头的项目太紧,所以那个C++系列很久没有更新,请大家谅解,等到项目完成后,一定会有更多的更新,当然还有发消息给我的朋友,感谢你们的关注,我一定会在五月一一给你们回复~再次感谢!

正文开始:

一、方案背景:

  在现在这个时代,Wifi设备的普及正在以迅雷不及掩耳的速度在整个社会中蔓延开来,手机、笔记本电脑、游戏机PSP等……似乎好像要来个全民Wifi!所以,可以预见,未来在短距离、大通讯量的应用上,WIFI还是一个比较不错的平台。

  还记得不久前,我前去客户那里做需求调查工作,工作使用的笔记本就直接加入了客户的无线局域网中,但是拿着笔记本走来走去也不太方便,于是,我就带着PPC,用它来做各种记录和调查,当然,有时候也会把一些拜访客户的问题放到PPC上,以免我忘了。每次PPC和PC间的文件同步过程比较痛苦,毕竟是有线连接,我就在想,我是否可以直接把在PPC端搜集到的信息直接发到PC机,我在楼下时,可以从PC机共享的资料中获取文件到PPC,我就不用再跑上楼了(客户那里有好几层)。于是,这个无线文件传输方案在我脑海中逐渐成形。

 

二、方案介绍:

  这个方案主要解决的问题就是要方便、快捷的完成无线局域网内,两个设备(台式机、智能手机)的文件交换。所以,可以看到,此方案有两个显著特点:方便、快捷!

  首先,说说方便吧。我也研究过如何让PPC和PC在wifi局域网中共享文件,额,虽然说过程和PC间共享文件差不多,但是也要经过很多设置,比如添加受信的用户,指定此用户是这些文件的可访问者……哎,最后我照着做了一遍,最后由于人品问题,失败!

所以,我们要让用户能够很方便的,把想交换、共享的文件进行一些简单操作,就能让“别人”可以在局域网中看到并获取到!

  其次,快捷。其实就是快速传输,一般要在手机端使用的文件,体积都不会很大,所以,这一点倒是很容易做到。在这里我们先不做深入讨论吧。

说到这里,我们来看看方案的技术方面的东西。

  第一个进入我脑海的技术方案,就是点对点的通讯。比如:TCP或者UDP。可能是我比较熟悉这两种技术吧,当然,还有熟知的Sync 微软的那一套同步组件,貌似也不错啊!但是,由于我只想简单的实现文件的传输,所以,还是选择了前一种方式!

  技术方案决定了,那么来看看,我们需要用它完成一个什么样的业务功能吧。我想最好的解释就是图片,于是,Visio了一下,大致业务场景如下:

 

  PC机共享了一些文件,我拿着PPC通过WIFI可以访问到这些共享文件,然后按需索取到PPC,当然,我也可以把PPC上的文件发送到PC中!

从上面的业务场景来看,我们的系统要完成的功能很明了:

  1. 在设备间建立连接
  2. 用户通过PPC选择一个本地/远端文件,进行上传/下载操作
  3. 在设备间完成数据传输(获取文件列表、传输文件本身……)
  4. 捕获异常,传回状态结果
  5. 断开设备间的连接

  Ok,至此,貌似我们的整个系统功能大致也就浮出水面鸟。我将在接下来的一篇文章中,讨论详细的系统功能结构等问题,敬请关注。 

相关文章:

  • 给初学者:JavaScript 中数组操作注意点
  • 阿里研究院崔瀚文:“单身经济”背后的“新家园”
  • 在Hyper-V下Linux不能使用鼠标
  • 005——VUE中的v-text与v-html的使用
  • 控制反转IOC与依赖注入DI
  • 开源免费接口管理平台 eoLinker V3.1.7发布+开源版部署指南一份
  • Android ListView A~Z快速索引(改进版)
  • AFNetworking 源码阅读
  • 利用JQuery制作自定义Alert Box
  • Windows Server 2003域环境搭建
  • 简单学习Less基础用法
  • 让Eclipse使用jQuery的插件-spket/ jQueryWTP/ Aptana
  • 简单的Slony-I设置实例 II
  • Ubuntu环境搭建svn服务器
  • centos7.4源码安装mysql5.6.38
  • JS 中的深拷贝与浅拷贝
  • [数据结构]链表的实现在PHP中
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • k个最大的数及变种小结
  • leetcode46 Permutation 排列组合
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Spring Boot快速入门(一):Hello Spring Boot
  • SQLServer之创建数据库快照
  • vue 个人积累(使用工具,组件)
  • vuex 笔记整理
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 翻译--Thinking in React
  • 关于extract.autodesk.io的一些说明
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 跨域
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 那些被忽略的 JavaScript 数组方法细节
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 删除表内多余的重复数据
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #1015 : KMP算法
  • #考研#计算机文化知识1(局域网及网络互联)
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)nginx 安装、启停
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (备忘)Java Map 遍历
  • (七)c52学习之旅-中断
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)ObjectiveC 深浅拷贝学习
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .sdf和.msp文件读取
  • /etc/motd and /etc/issue
  • @DependsOn:解析 Spring 中的依赖关系之艺术