1. 程式人生 > 其它 >Java網路程式設計02:IP地址、埠和通訊協議

Java網路程式設計02:IP地址、埠和通訊協議

IP地址

Java的InetAddress類可以獲取IP地址

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Main {

    public static void main(String[] args) {

        try {

            /**
             * InetAddress.getByName()方法獲取域名和IP地址
             * getHostAddress()方法獲取規範的IP地址
             */
            InetAddress ip = InetAddress.getByName("www.yuankexue.cn");
            System.out.println(ip);
            System.out.println(ip.getHostAddress());

            /**
             * InetAddress.getLocalHost()方法獲取本地IP
             */
            InetAddress localHost = InetAddress.getLocalHost();
            System.out.println(localHost);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

不同的程序有不同的埠號,用來區分軟體(netstat -ano檢視所有埠

埠號範圍0~65535,單個協議下埠號不能衝突,但是UDP和TCP是不同的協議,埠號分開算

埠分類:

  • 公有埠:0~1023
    • HTTP:80
    • HTTPS:443
    • FTP:21
    • SSH:22
  • 使用者程式註冊埠:1024~49151
    • Tomcat:8080
    • MYSQL:3306
  • 動態埠(私有埠):49151~65535

通訊協議

TCP/IP協議簇:

  • TCP:使用者傳輸協議
  • IP:網路互聯協議
  • UDP:使用者資料報協議

UPD和TCP對比:

  • TCP:類似於打電話,有客戶端和服務端,先建立連線,傳輸完成才釋放連線,穩定,但效率低(三次握手,四次揮手)
  • UDP:類似於發簡訊,不建立連線,不穩定,但效率高