Ⅰ 如何在 android 本地搭建一个 http 服务器
这一阵感觉玩手机玩腻了,VPS也玩腻了,瞬间感觉啥都玩腻了。前几天闲着无聊,看到了手机上的超级终端,心想:安卓底层不也是Linux么?于是就用超级终端wget了一个文件,成功了!吼吼,于是下一个想法就是能不能在手机上搭建一个WEB环境??? 想到就开始各种搜,发现安卓使用的Linux并不属于任何发行版本,看来使用传统的建站方式不行了。继续搜索,发现谷歌商店里有一个集成lighttpd+php+mysql+phpmyadmin环境的APK,哈哈,这下好了。当然,如果只装上这个APK只能在本地测试,无法使用公网访问,所以,经过我各种搜,终于有了这一篇文章,毫不客气的说,这绝对是全网首发,至少不用让你再像我一样各种搜了。 现在的手机硬件已经很强大了,¥1999就能买到4核1.5G,2G内存的手机,这几乎能满足像我这样的小站的需求了。硬件有了,集成环境的APK也有了,就剩下公网访问了。 第一:需要一部安卓手机,至少600MHZ的CPU,256内存,手机需要ROOT,没有ROOT的话,不能使用80端口。 第二:下载我提供的集成环境的APK文件(这里)解压密码:,KSWEB在谷歌商店里是收费的,免费试用5天,我提供的这个文件为网友破解版,免费试用55年,够你折腾了。 第三:需要一个支持路由功能的路由器,以及一个花生壳账号。 1.首先在手机上安装APK,(如果手机里有什么防火墙之类的,请关闭,否则不能使用WIFI地址访问),然后点开KSWEB,首次开启,会解压缩文件,然后会提示重启,重启后,就能够看到mysql启动和相应信息了。 2.点options进入设置,然后勾选上root权限,这样就可以更改端口为80了。然后回到主界面,点phpmyadmin然后就会自动下载了。下载成功后,可以在手机浏览器里输入127.0.0.1,就可以看到相关信息。虽然版本有些老,但是相当简便啊亲…… 如果你只想在手机上测试,那么到这里就结束了。如果想让公网访问手机, 那么就需要使用DDNS(动态域名解析)来支持。 3.使用oray护照,登录花生壳,系统会自动分配给你一个免费域名,用这个域名来访问手机。登录你的路由器,点击“转发规则”,选择“虚拟服务器”,端口填写80,IP地址填写你手机WIFI的IP地址,保存,如图所示。 4.保存后,点击“动态DNS设置”,账号密码就是你oray的通行证,点登录,如果成功了,就会自动识别你的免费域名。如图所示,然后保存就行了。 这样的话,直接输入域名就可以访问到手机了,只要你的路由器不关闭,就可以一直使用了。下面是我的演示: 至此,你的手机就可以当成一个独立的VPS来使用了,建议使用闲置的手机来玩,它有以下几个好处:装13,够折腾,省电省资源,废物利用,数据更安全,便携,国内速度一流……还有,查域名的时候貌似是独立IP,这样网络会不会喜欢呢?
Ⅱ android开发 如何判断http服务器端是否打开
你的想法是做不到的。都是用超时表示失败,服务状态也是,只有放到线程里去,让它慢慢地去判断。
Ⅲ Android开发中客户端和服务器端怎么连接
首先你除了会安卓开发外要会javaweb或php等服务器语言。然后给服务器编写对数据库的操作和给app提供操作的接口,之后你的服务器连接数据库,你的app通过http等协议通过接口就能实现你想要的了。大概就是这样的流程,一般在公司中服务器的代码不需要你写。具体的不是三言两语就能做好的,网上搜搜大神们的写案例吧。
Ⅳ android怎么实现HTTP长连接
Push在Android平台上长连接的实现:
既然我们知道我们移动端要和Internet进行通信,必须通过运营商的网关,所以,为了不让NAT映射表失效,我们需要定时向Internet发送数据,因为只是为了不然NAT映射表失效,所以只需发送长度为0的数据即可。
这时候就要用到定时器,在android系统上,定时器通常有一下两种:
1.java.util.Timer
2.android.app.AlarmManager
分析:
Timer:可以按照计划或者时间周期来执行相关的任务。但是Timer需要用WakeLock来让CPU保持唤醒状态,才能保证任务的执行,这样子会消耗大量流量;当CPU处于休眠的时候,就不能唤醒执行任务,所以应用于移动端明显是不合适。
AlarmManager:AlarmManager类是属于android系统封装好来管理RTC模块的管理类。这里就涉及到RTC模块,要更好地了解两者的区别,就要明白两者真正的区别。
RTC(Real- Time Clock)实时闹钟在一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等;而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768KHz 晶体和电阻电容等。(如果对这方面感兴趣,可以自己查阅相关资料,这里就说个大概)
好了,回来正题。所以,AlarmManager又称全局定时闹钟。这意味着,当我用使用AlarmManager来定时执行任务,CPU可以正常地休眠,只有在执行任务是,才唤醒CPU,这个过程是很短时间的。
下面简单来说明其使用:
1.类似于Timer功能:
//获得闹钟管理器
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//设置任务执行计划
am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender);//从firstTime才开始执行,每隔5秒再执行
2.实现全局定时功能:
//获得闹钟管理器
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//设置任务执行计划
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender);//从firstTime才开始执行,每隔5秒再执行
总结:在android客户端使用Push推送时,应该使用AlarmManager来实现心跳功能,使其真正实现长连接。
在服务器端的实现:
在服务器端,可以使用很多语言来实现,如C/C++,java,Erlang等等,如我们国内比较好的极光推送(C开发),openfire(java开发)等等。
最近我看了极光推送的介绍和原理,下面我就说说他们是遇到什么难题,然后使用什么技术或者方案来解决呢。
当有大量的手机终端需要与服务器维持长连接时,对服务器的设计会是一个很大的挑战。
假设一台服务器维护10万个长连接,当有1000万用户量时,需要有多达100台的服务器来维护这些用户的长连接,这里还不算用于做备份的服务器,这将会是一个巨大的成本问题。那就需要我们尽可能提高单台服务器接入用户的量,也就是业界已经讨论很久了的 C10K 问题。
C2000K
针对这个问题,他们专门成立了一个项目,命名为C2000K,顾名思义,他们的目标是单机维持200万个长连接。最终他们采用了多消息循环、异步非阻塞的模型,在一台双核、24G内存的服务器上,实现峰值维持超过300万个长连接。
最后总结:
因为我最近用java在做一个PC、服务器、android的即时通讯系统(说白了就是模仿QQ,后面希望有不同的功能)。我的原则是用别人的原理,自己来实现,这样才更好深入了解一些框架。所以,估计难点是在通讯开发和服务器上的开发,必须深刻了解多消息循环、异步非阻塞的模型。之后我会发表关于这方面的实现。
在现在的android平台上,已经不是android单机的世界了(我不是说做单机游戏没有前途)。现在都是依靠发展蓬勃的互联网来支撑整个IT体系,所以,要成为一个android应用开发高手,必须朝着android、硬件、云服务这一体系来发展。
Ⅳ android https和http有什么区别
https是加密的,用双重密钥加密。
①首先制作一个证书,保存RSA密钥,客户端和服务端分别保存两份密钥;
②然后每次请求内容时随机生成一个AES密钥,客户端请求的内容和服务端返回的内容都使用这个AES密钥加密,保证在传输过程中即使被黑客抓包他也看不到原文,只能看到密文;
③AES密钥本身(一般是6位十六进制数)被第一步的RSA密钥加密,由于Android端和服务器端保存了rsa的公钥和私钥,所以可以知道本次传输的AES密钥,进而解析内容;
以上就是https加密传输的大致过程,而http传输则没有加密过程,全部明文传输,一旦被抓包内容也就泄露了。
Ⅵ Android http请求,更新服务器数据状态成功,服务器返回时如果网络中断,怎么处理
HTTP协议使用TCP协议传输的,因此在传输数据之前采用三次握手建立TCP连接。第4个包就是HTTP请求,然后是HTTP应答。你的问题是服务器的应答包没有收到,那太简单了。首先是超时定时器到期提示网络无响应。然后可以重新连接即可。仅供参考~
Ⅶ 如何在安卓上搭建http服务器
转载 本文介绍如何在安卓手机上搭建http服务器,有时候我们会有这要的需求,那就是想在自己的安卓手机上搭建一个简单的http服务里,有人是想用来玩一玩,有人是想做点研究,还有人有其他的目的,那么我们该怎么在安卓上搭建一个http服务器呢,下面安卓后院 为大家收集整理的一个方法,希望能够帮到大家。
一、准备篇
1.将lmp.tar.bz2移动到SD卡根目录(/mnt/sdcard/)
2.安装安卓终端模拟器(TerminalEmulator.apk)
(注:lmp.tar.bz2文件可以在本站的安卓工具箱页面下下载)
二、安装篇
1.打开安卓终端模拟器
2.执行以下命令(root)
$ su
# cd /
# mount -o remount,rw /system
# tar xf /mnt/sdcard/lmp.tar.bz2
# mount -o remount,ro /system
# exit
$ exit
三、启动篇
1.打开安卓终端模拟器
2.执行以下命令(root)
$ su
# almp-start.sh
# exit
$ exit
三、关闭篇
1.打开安卓终端模拟器
2.执行以下命令(root)
$ su
# almp-stop.sh
# exit
$ exit
四、测试篇
1.打开网络浏览器(OperaMobile)
2.输入以下地址欣赏下您的almp环境吧
http://127.0.0.1/
http://127.0.0.1/fileadmin/
或者
http://localhost/
http://localhost/fileadmin/
*.部分浏览器不支持localhost的解析
五、mysql篇
1.mysql用户名为root
2.mysql默认密码为空
3.mysql用以下地址访问
127.0.0.1:3306
localhost:3306
4.推荐phpmyadmin管理您的mysql数据库
5.由于phpmyadmin更新频繁,请自己下载安装
6.phpmyadmin默认不支持空密码登陆,请自己修改phpmyadmin的配置文件
7.登陆phpmyadmin轻击修改密码为您的mysql超级用户root设置一个密码吧
六、注意篇
*.php-cgi由本人编译
1.手机需要有root权限
2.部分rom需要安装busybox
3.部分rom需要在命令前面加上busybox
4.本环境包中的部分资源来源于网络开源项目
5.用Re挂载/system分区为读写可跳过mount命令
6.执行终端命令时请忽略命令前的命令提示符$(#)
7.本环境包理论上应该工作在Arm5++的安卓手机上
Ⅷ android怎么理解http协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在 http和其他几种网络协议[1]多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。 HTTP协议的网页HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。
Ⅸ Android 客户端的后台服务器用 C# HTTP 传输怎么样能保证数据的安全性
你可以不需要使用登录的方式,可以学习比如新浪微博,腾讯微博的OAuth1.0的方式
简单的说,其实就是在你的AndroidApp上有一个公钥,而你服务器上也同时使用这个公钥就可以做到数据加密
你AndroidApp上比如有一个AppSecret="abcdefg"
而你的服务器上面也有这个AppSecret="abcdefg"
在AndroidApp上使用SHA1(自己网络找JAVA SHA1的工具类)加密,密钥使用AppSecret
数据发送到服务器上,服务器使用AppSecret="abcdefg"解密即可
这个前提是别人无法破解你的App获取到App里面的AppSecret,而做到这个则需要解开Android的App包,如果别人真做到了,那你任何安全性的保障都是无用的,所以以上的方法即可
Ⅹ 求高人指点, 如何在android<手机>上建立http服务器
目前为止不可能实现。你要做服务器。那肯定得有各种各样的协议和组件,而手机的系统里面附带的都没有。所以手机目前是无法作为http服务器的。也包括其他类型的服务器。