黑馬程序員-網絡傳輸協議

------- android培訓java培訓、期待與您交流! ----------

一.IP地址
每個設備在網絡中的唯一標識
每臺網絡終端在網絡中都有一個獨立的地址,我們在網絡中傳輸數據就是使用這個地址。
ipconfig:查看本機IP
ping:測試連接
本地迴路地址:127.0.0.1 255.255.255.255是廣播地址
IPv4:4個字節組成,4個0-255。大概42億,30億都在北美,亞洲4億。2011年初已經用盡。
IPv6:8組,每組4個16進制數。
1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f
1a2b::aaaa:0000:0000:0000:aabb:1f2f
1a2b:0000:aaaa::aabb:1f2f
1a2b:0000:aaaa::0000:aabb:1f2f
1a2b:0000:aaaa:0000::aabb:1f2f
二.端口號
每個程序在設備上的唯一標識
每個網絡程序都需要綁定一個端口號,傳輸數據的時候除了確定發到哪臺機器上,還要明確發到哪個程序。
端口號範圍從0-65535
編寫網絡應用就需要綁定一個端口號,儘量使用1024以上的,1024以下的基本上都被系統程序佔用了。
常用端口
mysql: 3306
oracle: 1521
web: 80
tomcat: 8080
QQ: 4000
feiQ: 2425
三.網絡協議
爲計算機網絡中進行數據交換而建立的規則、標準或約定的集合。
UDP
面向無連接,數據不安全,速度快。不區分客戶端與服務端。
TCP   * 面向連接(三次握手),數據安全,速度略低。分爲客戶端和服務端。
三次握手: 客戶端先向服務端發起請求, 服務端響應請求, 傳輸數據
四.Socket
通信的兩端都有Socket。
網絡通信其實就是Socket間的通信。
數據在兩個Socket間通過IO流傳輸。
Socket在應用程序中創建,通過一種綁定機制與驅動程序建立關係,告訴自己所對應的IP和port。
五.UDP傳輸
1.發送
創建DatagramSocket, 隨機端口號
創建DatagramPacket, 指定數據, 長度, 地址, 端口
使用DatagramSocket發送DatagramPacket
關閉DatagramSocket
2.接收
創建DatagramSocket, 指定端口號
創建DatagramPacket, 指定數組, 長度
使用DatagramSocket接收DatagramPacket
關閉DatagramSocket
從DatagramPacket中獲取數據
3.接收方獲取ip和端口號
String ip = packet.getAddress().getHostAddress();
int port = packet.getPort();

六.TCP(http)
1.客戶端
創建Socket連接服務端(指定ip地址,端口號)通過ip地址找對應的服務器
調用Socket的getInputStream()和getOutputStream()方法獲取和服務端相連的IO流
輸入流可以讀取服務端輸出流寫出的數據
輸出流可以寫出數據到服務端的輸入流
2.服務端
創建ServerSocket(需要指定端口號)
調用ServerSocket的accept()方法接收一個客戶端請求,得到一個Socket
調用Socket的getInputStream()和getOutputStream()方法獲取和客戶端相連的IO流
輸入流可以讀取客戶端輸出流寫出的數據
輸出流可以寫出數據到客戶端的輸入流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章