Java網絡教程-基礎
Java提供了非常易用的網絡API,調用這些API我們可以很方便的通過建立TCP/IP或UDP套接字,在網絡之間進行相互通信,其中TCP要比UDP更加常用,但在本教程中我們對這兩種方式都有說明。
在網站上還有其他三個與Java網絡相關的教程,如下:
3.Java服務器多線程教程 (參與翻譯可以聯係我們)
盡管Java網絡API允許我們通過套接字(Socket)打開或關閉網絡連接,但所有的網絡通信均是基於Java IO類 InputStream和OutputStream實現的。
此外,我們還可以使用Java NIO API中相關的網絡類,用法與Java網絡API基本類似,Java NIO API可以以非阻塞模式工作,在某些特定的場景中使用非阻塞模式可以獲得較大的性能提升。
Java TCP網絡基礎
通常情況下,客戶端打開一個連接到服務器端的TCP/IP連接,然後客戶端開始與服務器之間通信,當通信結束後客戶端關閉連接,過程如下圖所示:
客戶端通過一個已打開的連接可以發送不止一個請求。事實上在服務器處於接收狀態下,客戶端可以發送盡可能多的數據,服務器也可以主動關閉連接。
Java中Socket類和ServerSocket類
當客戶端想要打開一個連接到服務器的TCP/IP連接時,就要使用到Java Socket類。socket類隻需要被告知連接的IP地址和TCP端口,其餘的都有Java實現。
假如我們想要打開一個監聽服務,來監聽客戶端連接某些指定TCP端口的連接,那就需要使用Java ServerSocket類。當客戶端通過Socket連接服務器端的ServerSocket監聽時,服務器端會指定這個連接的一個Socket,此時客戶端與服務器端間的通信就變成Socket與Socket之間的通信。
關於Socket類和ServerSocket類會在後麵的文章中有詳細的介紹。
Java UDP網絡基礎
UDP的工作方式與TCP相比略有不同。使用UDP通信時,在客戶端與服務器之間並沒有建立連接的概念,客戶端發送到服務器的數據,服務器可能(也可能並沒有)收到這些數據,而且客戶端也並不知道這些數據是否被服務器成功接收。當服務器向客戶端發送數據時也是如此。
正因為是不可靠的數據傳輸,UDP相比與TCP來說少了很多的協議開銷。
在某些場景中,使用無連接的UDP要優於TCP,這些在文章Java UDP DatagramSocket類介紹中會有更多介紹。
最後更新:2017-05-23 17:32:26
上一篇:
企業網站推廣需要注意什麼?
下一篇:
並發已不再是語言層麵上的事情了
Google到底在幹什麼?
讓簡曆成為通往麵試“綠卡”
java 企業網站源碼模版 有前後台 springmvc SSM freemaker 生成靜態化 屏幕自適應
【vue】webpack打包vue項目並且運行在Tomcat裏麵
display屬性的block,inline和inline-block
Android遊戲中添加音頻-詳解MediaPlayer與SoundPoo!並講解兩者的區別和遊戲中的用途!
Core Data淺談係列之七 : 使用NSFetchedResultsController
運營小幫手軟文推廣新聞發稿平台將是未來助企業一臂之力的新秀
4.數據庫鎖及表分區
Android 創建與解析XML(四)—— Pull方式