Java — 網路編程(一):Client與Server之間的資料傳送

來源:互聯網
上載者:User

  目前對於我這種剛接觸網路編程的豆芽來說,對網路編程最直觀的瞭解就是:一些的Client和一個Server端之間的資料傳遞。具體當然是複雜的,但是那是我以後要學的。

今天我知道了可以通過Socket和DatagramSocket兩種通訊端來進行Client和Server的連結,它們分別對應於TCP和UDP協議

DatagramPacket類:

DatagramPacket類是資料報包。

資料報包用來實現無串連包投遞服務。每條報文僅根據該包中包含的資訊從一台機器路由到另一台機器。從一台機器發送到另一台機器的多個包可能選擇不同的路由,也可能按不同的順序到達。不對包投遞做出保證。我覺得這個是比較複雜抽象的理解,我個人就簡單的理解為一個裝了位元組Buffer的包裹,包裹的上面寫了收信人的地址和姓名等資訊(具體的就是連接埠號碼,IP,等等)。

  DatagramSocket類通過receive和send方法進行收發資料報包,也就是收發DatagramPacket類的具體對象,從而實現Client和Server。之間的資料傳送。

Socket類:

  Socket通訊端是對應與TCP協議的。除了TCP與UDP協議的不同帶來Socket與DatagramPacket的不同外。在傳送資料的途徑上Socket是通過InputStream和OutputStream兩個流。比如:

  

Socket socket = new Socket("cuishen.iteye.com",80);  InputStream in = socket.getInputStream();  OutputStream out = socket.getOutputStream(); 

這三句相當於在Client和Server之間串連了兩個管子,一個流入,一個流出。

我今天是第一次接觸網路編程這個概念,所以理解的都是表面的東西。但好歹是個好的開始。如有不對的請多指教。

聯繫我們

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