Ⅰ 如何在 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伺服器的。也包括其他類型的伺服器。