網絡編程就是兩個或多個設備(程序)之間的數據交換。html
識別網絡上的每一個設備:①IP地址②域名(Domain Name)。一個IP地址能夠對應多個域名,一個域名只能對應一個IP地址。java
DNS服務器(域名解析):在實際傳輸數據之前須要將域名轉換爲IP地址。程序員
端口:讓一個計算機能夠同時運行多個網絡程序。端口的號碼必須位於0-65535之間,每一個端口惟一的對應一個網絡程序,一個網絡程序可使用多個端口。編程
C/S結構:網絡編程的結構被稱做客戶端/服務器結構,也叫作Client/Server結構。瀏覽器
B/S結構:使用瀏覽器做爲客戶端的結構被稱做瀏覽器/服務器結構,也叫作Browser/Server結構。B/S結構其實也就是一種特殊的C/S結構。服務器
P2P程序:P2P程序中既包含客戶端程序,也包含服務器端程序,是一種特殊的程序。網絡
協議(Protocol):在實際進行數據交換時,爲了讓接收端理解該數據,計算機比較笨,什麼都不懂的,那麼就須要規定該數據的格式,這個數據的格式就是協議。那麼如何來編寫協議格式呢?答案是隨意。只要按照這種協議格式可以生成惟一的編碼,按照該編碼能夠惟一的解析出發送數據的內容便可。也正由於各個網絡程序之間協議格式的不一樣,因此才致使了客戶端程序都是專用的結構。學習
在現有的網絡中,網絡通信的方式主要有兩種: ①TCP(傳輸控制協議)方式 ②UDP(用戶數據報協議)方式編碼
客戶端的編程主要由三個步驟實現:.net
一、創建網絡鏈接:在創建網絡鏈接時須要指定鏈接到的服務器的IP地址和端口號。(出現重複)
二、交換數據:交換數據嚴格按照請求響應模型進行。
三、關閉網絡鏈接。
一、監聽端口:這個端口就是服務器端開放給客戶端的端口,服務器端程序運行的本地計算機的IP地址就是服務器
端程序的IP地址。
二、 得到鏈接:服務器端和客戶端也經過該鏈接進行數據交換。通常得到鏈接時,須要開啓專門的線程處理該連
接,每一個鏈接都由獨立的線程實現。
三、 交換數據。
四、 關閉鏈接。
InetAddress類:該類的功能是表明一個IP地址,而且將IP地址和域名相關的操做方法包含在該類的內部。
TCP方式的網絡編程實現時,以java.net.Socket類表明客戶端鏈接,以java.net.ServerSocket類表明服務器端鏈接。因爲高度的封裝,程序員實際編程時,只須要指定IP地址和端口號碼就能夠創建鏈接了。一方面簡化了Java語言網絡編程的難度,另外也使得Java語言進行網絡底層系統編程很困難,具體點說,Java語言沒法實現底層的網絡嗅探以及得到IP包結構等信息。
實現服務器端監聽的代碼爲:
ServerSocket ss = new ServerSocket(10000);
實現UDP方式的編程,包含客戶端網絡編程和服務器端網絡編程,主要由兩個類實現,分別是:
一、DatagramSocket:實現「網絡鏈接」,包括客戶端網絡鏈接和服務器端網絡鏈接。DatagramSocket實現的
就是發送數據時的發射器,以及接收數據時的監聽器的角色。類比於TCP中的網絡鏈接,該類既能夠用於實現客戶
端鏈接,也能夠用於實現服務器端鏈接。
二、DatagramPacket:實現對於網絡中傳輸的數據封裝,該類的對象表明網絡中交換的數據。在UDP方式的網絡
編程中,不管是須要發送的數據仍是須要接收的數據,都必須被處理成DatagramPacket類型的對象,該對象中
包含發送到的地址、發送到的端口號以及發送的內容等。和TCP方式的網絡傳輸相比,IO編程在UDP方式的網絡編
程中變得不是必須的內容,結構也要比TCP方式的網絡編程簡單一些。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第六週 | 894/1926 | 2/7 | 30/175 | 這周進行了第一次的實驗 |
第七週 | 254/2180 | 2/9 | 21/196 | 第二次java實驗 |
第八週 | 260/2440 | 2/11 | 20/216 | 第三次java實驗 |
第九周 | 380/2820 | 2/13 | 25/241 | 第四次java實驗 |
第十週 | 80/2900 | 2/15 | 23/264 | 第五次java實驗 |