1. 程式人生 > >圖文詳解之網路程式設計!

圖文詳解之網路程式設計!

1.網路程式設計

  • 什麼是網路程式設計
    • 多臺計算機連線形成網路
  • 網路的作用
    • 資料互動
    • 資料共享

2.網路三要素

  • 網路協議:雙方實體完成通訊或服務所必須遵循的規則和約定
    •         應用層:  http,ftp,smtp              

              傳輸層

      :  TCP udp

              網路層:  ip

              資料鏈路層網絡卡

              物理層物理連線

  • Ip:  裝置在網路中的唯一標識(邏輯)

  • 埠: 邏輯上用於區分服務的埠(每個服務都會監聽特定的埠)  0-65535

               80埠:http服務

               3306埠: mysql服務

               21:ftp埠

              1521:oracle服務

               8080:tomcat服務

 

3.其他概念

  • DNS伺服器:伺服器: 域名和IP地址之間對映關係的伺服器。根據域名獲取ip地址的過程稱為域名解析
  • url:統一資源定位符。(定位資源的地方),協議://ip:埠/資源路徑?引數

4.網路程式設計介紹

  • Java.net.InetAddress
//1.獲取本機的IP地址
		InetAddress inetAddress = InetAddress.getLocalHost();
		//本機主機名稱
		String hostName = inetAddress.getHostName();
		//ip地址字串
		String ip = inetAddress.getHostAddress();
		System.out.println(hostName+":"+ip);
		
		//獲取指定域名的ip
		InetAddress ia2 = InetAddress.getByName("192.168.5.132");
		System.out.println(ia2.getHostName()+":"+ia2.getHostAddress());

		//獲取所有處理該請求的伺服器ip地址
		InetAddress[] ias = InetAddress.getAllByName("www.baidu.com");
		for (InetAddress inet2 : ias) {
			System.out.println(inet2.getHostName()+":"+inet2.getHostAddress());
		}
  • 網路程式設計
    • Socket(套接字)程式設計
    • 傳送和接收資訊的埠(介面)

5.Tcp/Udp(傳輸層)

  • Udp
    • 面向無連線不可靠協議
    • 特點:快
  • TCP
    • 面向連線的可靠協議。先建立連線,形成傳輸通道才能通訊,適合大資料量而且對資料要求較高的場景使用。
    • 速度慢。
    • 建立連線:  三次握手
      • Client/server:   請求響應模式
        • 客戶端首先發送請求給伺服器端(SYN)
        • 伺服器返回響應(SYN+ACK(確認))
        • 傳送ACK給伺服器端,此時建立連線。
  • Tcp協議的socket
    • 客戶端(Socket)
      • 明確伺服器端ip地址和埠,建立連線。
      • 傳送資料給伺服器端
      • 釋放資源
    • 伺服器端(ServerSocket)
      • 確定監聽埠
      • 獲取客戶端連線(建立連線)
      • 獲取客戶端傳送的資料
      • 釋放資源(伺服器一般不用關閉)