Java 網絡編程的相關知識

一、網絡編程概述

1、C/S 和 B/S

C/S 是客戶端-服務器軟件結構,服務提供商給予用戶服務需要準備的內容。

  1. 各大平臺的客戶端
    Android iOS PC Windows Linux macOS
  2. 服務器提供服務
    軟件更新時,服務器版本更新,同時本地軟件也要進行更新操作,這個操作非常耗時。

B/S是瀏覽器-服務器軟件結構,服務提供商只要提供數據服務以及前端數據展示方式就可以了。

  1. 瀏覽器提供商非常多
    谷歌,火狐,歐朋,Safari,Edge
  2. 服務器提供服務
    軟件更新時,服務器更新數據,瀏覽器刷新就可以了。
2、網絡通信協議

網絡通信協議是要求雙方傳遞數據的計算機必須遵守的,按照對應的網絡傳輸協議纔可以進入數據的交互和傳遞。

目前網絡段數據傳輸比較常見的協議: UDP 和 TCP/IP

3、UDP 和 TCP/IP 的區別

UDP

  1. 面向無連接,數據傳遞不是特別安全。
  2. 因爲面向無連接,所以傳輸速度快。
  3. 因爲面向無連接,所以數據傳遞存在丟包問題。
  4. UDP沒有客戶端和服務器區別,都可以作爲發送端和接收端。
    UDP協議的使用場景有直播,網絡遊戲等。

TCP/IP

  1. 面向連接,數據傳遞較爲安全。
  2. 因爲面向連接,所以傳遞速度較慢。
  3. 面向連接,數據傳遞有保障。
  4. TCP/IP協議是有明確的服務器和客戶端概念。
    TCP/IP協議使用場景有客戶端登陸,數據下載,文件傳輸等。
4、網絡編程三要素
  1. 協議
    兩個臺計算機通過網絡進行數據傳遞,都需要對應的協議來完成。

  2. IP地址
    Internet Protocol Address
    當前計算機在網絡中的一個地址編號,類似於手機號號碼
    IP地址有IPv4協議和IPv6協議
    IPv4是一個32位的二進制數,通常展示效果是a.b.c.d 例如 192.168.1.1
    a.b.c.d 各代表0 ~ 255的數字,目前已經消耗殆盡 42億個
    IPv6能夠保證地球上的每一粒沙子都有一個IP地址
    128位地址長度,16字節一組
    8組 0x0 ~ 0xFFFF

  3. 端口號
    端口號是當前應用程序在計算機中的一個編號。可以讓計算機明確知道,當前的數據是給予哪一個程序使用,或者數據從哪一個程序出現的。
    端口號是一個short類型 0 ~ 65535
    0~1024不能用於自定義端口號使用,是特定的系統端口號。

二、IP類

SUN公司提供給開發者使用的IP地址類:InetAddress類

1、常用方法
InetAddress getLocalhost();
	獲取本機IP地址類對象
InetAddress getByName(String str);
	根據指定的主機名獲取對應的IP地址對象
InetAddress[] getAllByName(String str);
	根據指定主機名獲取域名對應的所有IP地址類對象
2、使用演示
public class Demo {
	public static void main(String[] args) throws UnknownHostException {
		//獲取本機IP地址類對象
		InetAddress localHost = InetAddress.getLocalHost();
		System.out.println(localHost);
		
		//根據指定的域名獲取對應的IP地址對象
		InetAddress byName = InetAddress.getByName("www.csdn.net");
		System.out.println(byName);
		
		//根據指定主機名獲取域名對應的所有IP地址類對象
		InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com");
		for (InetAddress inetAddress : allByName) {
			System.out.println(inetAddress);
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章