1. Socket簡介
(1)Socket概述:
Socket通常成為套接字,用於描述IP地址和端口,是一個通信的句柄。在internet上的主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個socket,並綁定到一個端口上,不同的端口對應不同的服務。
(2)應用程序網絡通信原理:
通常通過套接字向網絡發出請求後者答應網絡請求。Socket和ServerSocet類位於java.net包中。ServerSocket位於服務器,Socket是建立網絡連接時使用的。在連接成功時,應用程序兩端都會生成一個Socket實例,操作這個實例,完成所需對話。
(3)網絡編程分類:
java.net包中提供了兩種常見的網絡協議的支持:
TCP:TCP是傳輸控制協議的縮寫,它保障了兩個應用程序之間的可靠通信。通常用於互聯網協議,被稱為TCP/IP。
UDP:UDP是用戶數據報協議的縮寫。一個無連接的協議。提供了應用程序之間要發送的數據的數據包。
2. TCP通信模型和編程
(1)TCP通信模型圖:(客戶端和服務端通信)
(2)TCP編程的核心類(ServerSocket和Socket):
1)ServerSocket類:
服務器應用程序通過使用java.net.ServerSocket類以獲取一個端口,並且真挺客戶端請求。常用方法如下圖:
2)Socket類:
java.net.Socket類代表客戶端和服務器用來互相通信的套接字。常用的方法如下圖:
(3)TCP網絡編程模型如圖:
(4)TCP編程實例:
服務端代碼:
客戶端代碼:
3. UDP通信模型和編程
(1)UDP通信模型如圖:(客戶端和服務端通信)
(2)UDP編程的核心類(DatagramSocket和DatagramPacket):
1)DatagramSocket類:
此類表示用來發送和接收數據報包的套接字。常用方法如下圖:
2)DatagramPacket類:
此類表示數據報包。常用方法如下圖:
(3)UDP網絡編程模型如圖:
(4)UDP編程實例:
服務端代碼:
客戶端代碼: