模仿AirAndroid---方便简单的Android手机PC管家
来源:互联网 发布:网络教育什么时候考试 编辑:程序博客网 时间:2024/04/29 09:12
项目内容:一款不需要安装驱动,不需要PC安装软件的Android手机管理软件
谈下我这个项目的思路:
背景:看到同学的一款软件AirAndroid。一款通过网页去管理Android手机的软件(需要跟电脑统一WIFI下),免去了PC机装手机驱动,管理软件等的困扰。于是想到,国内这种软件,少之又少,AirAndroid还有流量限制。于是想自己开发一个。
思路:把手机作为服务器,浏览器作为客户端。浏览器去请求出网页来。由于普通http协议,只支持一次通讯,于是想到了WebSocket。其中WebSocket服务器也在手机中。浏览器将相关动作传给服务器(手机)。服务器执行后,将结果反馈给浏览器。
开发进度:已经把服务器框架搭建好,实现了查看通讯录的功能。后面功能将继续实现。
websocket服务器-java实现
握手协议之类什么的,看的稀里糊涂。想自己写,实在没看懂。网上找的一个java写的服务器
感谢下大神:hoverlees.
http://www.hoverlees.com/blog/?p=1624
下面协议目的:毫无目的可言。就是老师让我讲下我的项目的一些协议,我就从网络上摘抄了些下来。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IP协议
1、Internet体系结构
一个TCP/IP互联网提供了三组服务。最底层提供无连接的传送服务为其他层的服务提供了基础。第二层一个可靠的传送服务为应用层提供了一个高层平台。最高层是应用层服务。2、IP协议: 这种不可靠的、无连接的传送机制称为internet协议。
3、IP协议三个定义:
(1)IP定义了在TCP/IP互联网上数据传送的基本单元和数据格式。
(2)IP软件完成路由选择功能,选择数据传送的路径。
(3)IP包含了一组不可靠分组传送的规则,指明了分组处理、差错信息发生以及分组的规则。
UDP协议
◇ UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。◇ UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
◇ 由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快
TCP协议
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
TCP连接过程
连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听:服务器端套接字处于等待连接的状态,实时监控网络状态,等待客户端的连接请求 。(绑定端口,accpt())客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地 址和端口号,然后就向服务器端套接字提出连接请求。(绑定服务器地址,端口)
连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接
HTTP协议
HTTP协议永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
HTTP连接四个步骤:
(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。
(2) 请求:Web浏览器通过socket向Web服务器提交请求。
(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。
(4) 关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。
HTTP特点
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接
2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
HTTP通讯过程
即时通讯现很多网站为了实现即时通讯(real-time),所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(time interval)(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request d的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求(request),然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽。
而最比较新的技术去做轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求(reuqest)。
WebSocket
WebSocket 是HTML5一种新的协议(protocol)。它是实现了浏览器与服务器全双工通信。在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket 协议中,为我们实现即时服务带来了两大好处:
1. Header
互相沟通的Header是很小的-大概只有 2 Bytes
2. Server Push
服务器可以主动传送数据给客户端
Chrome Supported in version 4+
Firefox Supported in version 4+
Internet Explorer Supported in version 10+
Opera Supported in version 10+
Safari Supported in version 5+
WebSocket服务器
在服务器端,也出现了一些实现websocket协议的项目:jetty 7.0.1 包含了一个初步的实现
resin 包含有websocket 实现
pywebsocket, apache http server 扩展
apache tomcat 7.0.27 版本
Nginx 1.3.13 版本
websocket api在浏览器端的广泛实现似乎只是一个时间问题了, 值得注意的是服务器端没有标准的api, 各个实现都有自己的一套api, 并且jcp也没有类似的提案, 所以使用websocket开发服务器端有一定的风险.可能会被锁定在某个平台上或者将来被迫升级.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以上摘抄自:百度百科,博客文章等之中
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 模仿AirAndroid---方便简单的Android手机PC管家
- 简单的模仿360卫士的手机管家(开源)
- Android手机平台的软件管家
- Android把手机作为FTP服务器,在PC端管理手机文件的简单实现
- Android把手机作为FTP服务器,在PC端管理手机文件的简单实现
- Android 简单方便的延时
- QQ手机管家android版本的一个空指针bug
- Android的使用AnimationListener监听动画,手机管家界面设计
- 仿华为手机管家的病毒扫描 Android自定义View
- Android 跳转手机管家的自启动界面
- 软件管家――免签名安全方便装备手机
- 高仿QQ手机管家界面PC客户端
- 一个很简单的Android手机和pc通信的例子
- 解析Android手机连接PC的瞬间
- 手机管家
- Android自定义进度条-手机管家进度条
- android 手机PC客户端
- 简单方便的代码混淆(Android)
- 计算100以内的素数的个数
- HDOJ 4389 —— 数位DP
- 云计算和大数据入门
- 9月10日美团网2014校招研发笔试哈尔滨站
- Windows Azure使用必读
- 模仿AirAndroid---方便简单的Android手机PC管家
- Windows Azure新功能:Hadoop和Web版的移动服务
- Java中的不可变类
- Android自动测试之Monkey工具 Monkeyrunner
- 云计算的理解
- 微软云存储SkyDrive API:将你的数据连接到任何应用、任何平台,及任何设备上
- HDU1716w从排列中学格式化
- 巧妙的DispAL
- 在 Windows Azure 上部署预配置 Oracle VM