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

來源:互聯網
上載者:User
文章目錄
  • 解決點
  • 更好的解決點:
  • 終極解決點:後面我有測試下,發現筆記本串連有線,手機串連wifi,也能通訊的。因此現在總結下。
糾結ing

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

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

//服務端
//建立一個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,該路由器連到校園網。順便說下被我找到做小白鼠的是一個一個叫無線滑鼠的東西。

 

解決方案

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

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

一.連在相同wifi上解決點

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

手機:

pc:

 

更好的解決點:

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

pc:

手機:

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

1. pc 連有線 手機連 wifi

2.pc 連wifi 手機連wifi

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

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

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

5.藍芽串連

 

 

 

二.pc機需要關閉防火牆

 

 

 

 

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

進控制台-》windows防火牆-》開啟關閉windows防火牆,進去都關了好了

三.填寫正確ip

 

 

解決點:開始功能表列搜尋方塊輸入cmd-》跳轉命令列控制介面-》輸入ipconfig,按斷行符號,查看ip配置

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

 

 

 

 

 

 

 

 

 

 

 

 

後記

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

2013.6.3補充

清單目錄裡面存在

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.