網路程式設計
概述
計算機網路:計算機網路是指將地理位置不同的具有獨立功能的多臺計算機及其外部裝置,通過通訊線路連線起來,在網路作業系統,網路管理軟體及網路通訊協議的管理和協調下,實現資源共享和資訊傳遞的計算機系統。
網路程式設計的目的:無線--->傳播交流資訊,資料交換,通訊。
網路通訊的要素:通訊雙方的IP,埠號。
網路通訊的協議:http, ftp, smtp, tcp, udp等。
IP
IP地址:InetAddress,唯一定位網路上的計算機;本機 localhost:127.0.0.1。
ip地址分類:ipv4/ipv6
Ipv4:127.0.0.1,4個位元組組成,0-255 約42億個;亞洲4億,2011年用盡。
Ipv6:fe80::40c5:1492:3aa9:db4b%11 128位,8個無符號整數。
公網(網際網路),私網(區域網):ABCD類地址 192.168.xx.xx專門給組織內部使用的,
package com.zr.lesson01;
import java.net.InetAddress;
import java.net.UnknownHostException;
//測試ip
public class TestInetAddress {
public static void main(String[] args) {
try {
//查詢本機ip地址
InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress);
InetAddress inetAddress3 = InetAddress.getByName("localhost");
System.out.println(inetAddress);
InetAddress inetAddress4 = InetAddress.getLocalHost();
System.out.println(inetAddress);
//查詢百度ip地址
InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress2);
//常用方法
//System.out.println(inetAddress2.getAddress());
System.out.println(inetAddress2.getCanonicalHostName());//規範的名字
System.out.println(inetAddress2.getHostAddress());//ip
System.out.println(inetAddress2.getHostName());//域名 或者自己電腦的名字
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
埠
埠port表示計算機上一個程式 的程式:
-
不同的程式有不同的埠號!用來區分軟體。
-
埠被規定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
1. netstat -ano #檢視所有的埠 2. netstat -ano|findstr "5900" #檢視指定的埠 3. tasklist|findstr "8696" #檢視指定埠的程式 4. Ctrl+shift+Esc #開啟工作管理員
package com.zr.lesson01; import java.net.InetSocketAddress; public class TestInetSocketAddress { public static void main(String[] args) { //查詢本機地址 InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080); InetSocketAddress socketAddress1 = new InetSocketAddress("localhost", 8080); System.out.println(socketAddress); System.out.println(socketAddress1); System.out.println(socketAddress.getAddress()); System.out.println(socketAddress.getHostName()); //地址 System.out.println(socketAddress.getPort()); //埠 }
-
通訊協議
網路通訊協議:速率,傳輸位元速率,程式碼結構,傳輸控制。
TCP/IP協議簇:實際上是一組協議
重要:
- TCP:使用者傳輸協議
- UDP:使用者資料包協議
- IP:網路互聯協議
TCP/UDP對比
TCP:打電話
- 連線,穩定
- 三次握手,四次揮手
- 客戶端,服務端,傳輸完成釋放連線,效率低
UDP:發簡訊
- 不連線,不穩定
- 客戶端,服務端,沒有明確的界限
- 不管有沒有準備好,都可以傳送
- DDOS:洪水攻擊!(飽和攻擊)