網絡編程
3 端口
端口表示計算機上的一個程序的進程
-
不同的進程有不同的端口號!用來區分不同的軟件進程
-
被規定總共0~65535
-
TCP,UDP:65535 * 2
-
在同一協議下,端口號不可以沖突占用
-
端口分類:
-
公有端口:0~1023
- HTTP : 80
- HTTPS : 443
- FTP : 21
- Telent : 23
-
程序注冊端口:1024~49151,分配給用戶或者程序
- Tomcat:8080
- MySQL:3306
- Oracle:1521
-
動態、私有端口:49152~65535
netstat -ano #查看所有的端口狀況 netstat -ano|findstr "5900" #查看指定的端口 tasklist|findstr "13000" #查看指定端口的進程,這里此電腦的13000端口IP代表QQ應用進程
運行結果:
-
練習:
package com.duo.lesson01;import java.net.InetSocketAddress;public class InetSocketAddressTest {public static void main(String[] args) {InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 8080);InetSocketAddress inetSocketAddress2 = new InetSocketAddress("localhost", 8080);System.out.println(inetSocketAddress);System.out.println(inetSocketAddress2);System.out.println(inetSocketAddress.getAddress());System.out.println(inetSocketAddress.getHostName()); //hosts 地址System.out.println(inetSocketAddress.getPort()); //端口}
}
運行結果:
4 通信協議
網絡通信協議:速率,傳輸碼率,代碼結構,傳輸控制…
TCP/IP協議簇:實際是一組協議
-
IP:網絡互連協議
-
TCP:用戶傳輸協議
-
兩個重要的協議:
- TCP:用戶傳輸協議
- UDP:用戶數據報協議
TCP與UDP對比:
-
TCP類比打電話:
- 連接,穩定
- 三次握手,四次揮手
所謂三次握手,最少需要三次,以保證穩定連接;三次握手四次揮手可以抽象理解記憶
最少需要三次,以保證穩定連接! A:你瞅啥? B:瞅你咋地? A:不服來干一場!A:我要離開了! B:你要離開嗎? B:你真的決定離開了嗎? A:我真的要離開了!
- 客戶端、服務端
- 傳輸完成會釋放連接,效率低
-
UDP類比發短信
- 不連接,不穩定
- 客戶端、服務端沒有明確的界限
- 不管有沒有準備好,都可以發出