關於安卓手機做客戶端pc做服務器進行Socket通信出現問題的解決案方


糾結ing

學習是一件需要身體力行的事情,有些東西你理念看的多么嫻熟,到自己親自上手,不經意間就出現幾個你無法逃避的錯誤,這時候,教科書上沒告訴你這種錯誤的解決方法,只能自己不斷嘗試,不斷失敗,到最后發現其實解決的方法很簡單,但你花費了很長時間,這時你是不是覺得很不值。其實那是值得的,這種經歷是你看再多書也無法學到的能力。

現在說說我的那個坎吧,最近想做個安卓通信那塊的,代碼很簡單,但pc上開兩個java Application是能通信的,但在pc開服務器,安卓手機上裝個客戶端,卻在連接的時候閃退,不知道你有咩有碰到在安卓通信編程這方面的問題呢。當時我就糾結了,不斷網上找,什么谷歌百度都拿出來,閱遍千頁搜索結果,都是相同的,差不多都是下面那幾句:

//服務端
//創建一個ServerSocket,用於監聽客戶端Socket的連接請求
ServerSocket ss = new ServerSocket(30000);
//采用循環不斷接受來自客戶端的請求
while (true){
//每當接受到客戶端Socket的請求,服務器端也對應產生一個Socket
Socket s = ss.accept();
//下面就可以使用Socket進行通信了
...
}
//客戶端
//創建連接到服務器、30000端口的Socket
Socket s = new Socket("192.168.2.214" , 30000);
//下面就可以使用Socket進行通信了
...

然后加些其他東西,不如界面啊,存儲啊。。當時我就隱隱懷疑好像是服務器ip的問題,但是網上例子的ip都是直接寫的,我就想,難道自己測試的時候的Ip也能固定?當然ip變化,程序員能直接在源碼上改的。然后我就沒頭緒就找資料-》嘗試改代碼-》運行(安卓運行還特慢)-》運行出錯繼續找資料。tupo

突破口

最后快被逼瘋了的我,已經在假設是不是校內網不可以進行網絡編程了,如果是固定ip就沒這個問題了。然后我就轉了研究方向,從尋找錯誤點到驗證上面那個理論,驗證的方法很簡單,網上找個已經發布的pc做客戶端安卓做應用端的程序,由於是已經發布的,那被證明程序是正確的,如果程序正確我還是不能連接成功的話,那就是校內網的問題了,在此說明下,我的pc和手機都是連接的T_Link路由器也就是wifi,該路由器連到校園網。順便說下被我找到做小白鼠的是一個一個叫無線鼠標的東西。

小Q截圖-20130602123346

 

解決方案

本來想證明上面那個理論是正確的,最后被我解決了原先的問題,事事多變啊,現在整理下,給和我一樣碰到相同問題的人,當然我也做個記錄,記錄我摔倒的一個坑,用了我整整兩天啊!

下面介紹利用安卓進行網絡編程的環境配置。

一.連在相同wifi上

解決點

最好有個wifi點可以都連接,如果沒有,那只好自己買個了,想學技術,這點必要的錢還是要舍得的。

手機:

小Q截圖-20130602123718

pc:

小Q截圖-20130602123805

 

更好的解決點:

經本人測試,只要有個筆記本就行,就算沒網都行,只要你不上網,因為手機只需和pc機通信即可。具體方法就是網上下個wif共享精靈之類的程序,讓筆記本架設wifi,手機連到筆記本即可,當然不用wifi共享精靈之類的程序直接命令行輸入也可,只是麻煩點,反正我是懶得記那些命令行代碼。

pc:

小Q截圖-20130602124804 小Q截圖-20130602124834

手機:

小Q截圖-20130602124927

終極解決點:后面我有測試下,發現筆記本連接有線,手機連接wifi,也能通信的。因此現在總結下。

1. pc 連有線 手機連 wifi

2.pc 連wifi 手機連wifi

3. pc開啟wifi共享 手機連pc

ps:下面是我的一些設想,一般時候用不到,但可能性很大,看客可自行嘗試。

4. 手機開啟wifi共享 pc連手機

5.藍牙連接

 

 

 

二.pc機需要關閉防火牆

 

 

 

 

解決點:這個必須啦,我建議是,測試的時候打開,平常瀏覽網頁,看看島國愛情動作大片的時候就把他關上了。

進控制面板-》windows防火牆-》打開關閉windows防火牆,進去都關了好了

小Q截圖-20130602125333 小Q截圖-20130602125355 小Q截圖-20130602125420

三.填寫正確ip

 

 

解決點:開始菜單欄搜索框輸入cmd-》跳轉命令行控制界面-》輸入ipconfig,按回車,查看ip配置

小Q截圖-20130602125632 小Q截圖-20130602125814 小Q截圖-20130602125825

此時會跳出一大坨東西,由於筆記本有多塊網卡,所有里面會有很多ip的,不要管后面,開頭一撮就是你的pc ip了,就是下面ipv4地址

 

 

 

 

 

 

 

 

 

 

 

 

小Q截圖-20130602125950

后記

那個希望我在我喜歡的事情上能越走越遠把。

2013.6.3補充

清單目錄里面存在

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

也會出現閃退現象,這里解釋下閃退,就是點擊進入程序,程序之間強制退出,如果你沒碰到,那恭喜你啊,這不是什么好的體驗。下面回到正題,研究了原因,發現問題出在android:targetSdkVersion="17"上,將其刪除即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM