Android深入淺出系列之Socket—Socket編程(一)

來源:互聯網
上載者:User

  為什麼要講Socket呢?因為看過我藍芽協議(一)和藍芽協議(二)的文章的人知道,我要做的這個應用是把藍芽筆裡面的資料讀取到手機裡,就要用到基於Bluetooth協議的Socket,所以就也是為什麼在這裡我要講一下Socket編程了。

  一:什麼是Socket    

    它實際上是網路通訊的一種介面,基於不同的協議,有各種不同的Socket,比如有基於TCP協議的Socket和基於UDP協議的Socket以及基於藍芽協議的Socket,Android中使用的是Java的Socket模型。

    Socket在電腦行業通常稱為”通訊端“,用於描述IP地址和連接埠,是一個通訊鏈的控制代碼。這是一個比較抽象的概念。電腦是擁有連接埠的,每一個連接埠都可以有一個應用程式來進行通訊的使用,比如:80連接埠是HTTP協議所使用的連接埠,21連接埠是FTP協議所使用的連接埠,連接埠是電腦和外界通訊的介面,這些介面都是邏輯的介面,連接埠號碼取值的範圍是零到256乘以256減1,1024以下的連接埠都是作業系統使用的保留連接埠,以上的連接埠我們可以自由的來使用,不要和其他應用程式的連接埠衝突。

    應用程式可以通過“通訊端”向網路發送請求或者應答網路的請求,這時候就把Socket分成了兩部分,一部分是伺服器端的Socket,這個Socket主要用來接收來自網路的請求,它一直監聽在某一個連接埠上。一部分是用戶端的Socket,這個Socket主要用來向網路發送資料。

  二:Socket通訊模型

  

    -UDP協議和TCP協議

    UDP協議和TCP協議是互連網使用最廣的兩種協議都是基於IP的協議。第一個區別是UDP協議是一個不太靠譜的協議,UDP協議把資料都打成資料包,資料包上內建郵寄地址,也就是說我要把這個資料包發送到網路上的哪一個地址,通過網路把這個資料包發送出去,至於這個資料包是否發送到目的地,是否伺服器端接收到了這個資料包,這個協議並不保證,就像中國的郵政,你是把信寄出去了,但是郵政系統不保證對方能收到你寄送的信。TCP發送資料的時候要求接收方接收到資料之後給一個回應,也就是你是否收到了,TCP可靠一些,當我們發送一些比較重要的資料的時候一般都使用TCP協議。另外一個區別是UDP協議發送的一個資料包它的容量是有限的,而TCP協議則沒有這樣一個限制。並不是說UDP協議一定就不如TCP協議,在不同的領域有不同是使用,UDP協議好處是速度相對快些。TCP協議相對慢些。

    -Socket通訊流程

    應用程式通過“通訊端”也就是Socket可以選擇這兩種協議當中的一種,你可以選擇用UDP發送資料,也可以選擇用TCP發送資料,資料發送出去通過“通訊通道”也就是IP的基礎網路,來到伺服器端(接收端),就可以接收到資料了。發送資料的時候用UDP協議,接收的時候也要用UDP協議,發送資料的時候用TCP協議,接收的時候也要用TCP協議,在發送的時候指定接收端的IP地址和連接埠號碼就可以了,究竟資料包或資料是如何發送的,架構已經幫我們封裝好了,我們不去關心它了。

     

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.