Android客戶(hù)端與Server用socket的交互(一)

【Socket與HTTP連接的區(qū)別】

?1. HTTP連接使用的是“請(qǐng)求—響應(yīng)”的方式,不僅在請(qǐng)求時(shí)需要先建立連接,而且需要客戶(hù)端向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器端才能回復(fù)數(shù)據(jù)。

2. socket是可以監(jiān)聽(tīng),因此Socket連接一旦建立,通信雙方即可開(kāi)始相互發(fā)送數(shù)據(jù)內(nèi)容,直到雙方連接斷開(kāi)。保持客戶(hù)端與服務(wù)器數(shù)據(jù)的實(shí)時(shí)與同步。

參考:?Android客戶(hù)端與服務(wù)器交互方式-小結(jié)

解釋一下(舉個(gè)例子):

Http連接相當(dāng)于發(fā)送郵件,發(fā)送方先給接收方發(fā)送一條消息,接收方接收到消息后,再進(jìn)行回復(fù)

socket連接相當(dāng)于打電話,只要電話一接通,二者就可以相互發(fā)送消息,直到電話掛斷

Socket的使用

1. 添加internet權(quán)限

2. socket是網(wǎng)絡(luò)通信,是耗時(shí)操作,所以一定要開(kāi)辟一個(gè)新的線程

3. 在Activity中創(chuàng)建socket對(duì)象,并且進(jìn)行連接操作

(對(duì)button1進(jìn)行監(jiān)聽(tīng),下面代碼寫(xiě)在onclick里面)

ip地址為自己的ip地址,端口號(hào)是自己的端口號(hào)

4. 對(duì)服務(wù)器發(fā)送消息

(對(duì)button2進(jìn)行監(jiān)聽(tīng),下面代碼寫(xiě)在onclick里面)

使用DataOutputSteam類(lèi),將消息發(fā)送到服務(wù)器

5. 服務(wù)器進(jìn)行接收

這里使用的是eclipse建立的一個(gè)java文件進(jìn)行接收

創(chuàng)建ServerSocket對(duì)象,等待客戶(hù)端連接

6. 運(yùn)行java文件,再運(yùn)行Android文件

點(diǎn)擊Android文件中的button1和button2,Server端控制臺(tái)打印出:

這樣就實(shí)現(xiàn)了Android端向server端發(fā)送消息的功能

參考:Socket簡(jiǎn)單應(yīng)用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,008評(píng)論 25 709
  • 先說(shuō)一下這篇文章里面的內(nèi)容:TCP 客戶(hù)端, 自定義對(duì)話框, 自定義按鈕, ProgressBar豎直顯示, 重力...
    楊奉武閱讀 3,935評(píng)論 0 3
  • 水上書(shū)_琪閱讀 252評(píng)論 0 0
  • 作為人,何謂正確?我們從出生到現(xiàn)在,也許腦海中時(shí)常會(huì)浮現(xiàn)這樣對(duì)自身的疑惑。我們就像萬(wàn)千漂浮于空中的塵埃,遲遲找不到...
    原野千目閱讀 240評(píng)論 0 0
  • 說(shuō)實(shí)話這個(gè)圖拍的確實(shí)一般化,不過(guò)作為一個(gè)菜鳥(niǎo)的我,也倍感欣慰了。 來(lái)自佳能sh50sh
    靠譜不閱讀 346評(píng)論 0 2

友情鏈接更多精彩內(nèi)容