91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談java網絡編程基礎知識

發布時間:2020-07-20 09:55:29 來源:億速云 閱讀:145 作者:小豬 欄目:編程語言

這篇文章主要淺談java網絡編程基礎知識,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

網絡基礎知識

1、OSI分層模型和TCP/IP分層模型的對應關系

淺談java網絡編程基礎知識

這里對于7層模型不展開來講,只選擇跟這次系列主題相關的知識點介紹。

2、七層模型與協議的對應關系

網絡層 ------------ IP(網絡之間的互聯協議)

傳輸層 ------------ TCP(傳輸控制協議)、UDP(用戶數據報協議)

應用層 ------------ Telnet(Internet遠程登錄服務的標準協議和主要方式)、FTP(文本傳輸協議)、HTTP(超文本傳送協議)

3、IP地址和端口號

1、ip地址用于唯一標示網絡中的一個通信實體,這個通信實體可以是一臺主機,可以是一臺打印機,或者是路由器的某一個端口。而在基于IP協議網絡中傳輸的數據包,必須使用IP 地址來進行標示。ip地址就像寫一封信,必須指定收件人的地址一樣。每個被傳輸的數據包中都包括了一個源IP和目標IP。

2、ip地址唯一標示了通信實體,但是一個通信實體可以有多個通信程序同時提供網絡服務。這個時候就要通過端口來區分開具體的通信程序。一個通信實體上不能有兩個通信程序 使用同一個端口號。

IP地址和端口號,就像一個出差去外地入住酒店一樣,IP地址表示了酒店在具體位置,而端口號則表示了這個人在酒店的房間號。

4、TCP和UDP

1、TCP是一種面向連接的保證可靠傳輸的協議。通過TCP協議傳輸,得到的是一個順序的無差錯的數據流。它能夠提供兩臺計算機之間的可靠的數據流,HTTP、FTP、Telnet等應 用都需要這種可靠的通信通道。

2、UDP是一種無連接的協議,每個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網絡上以任何可能的路徑傳送目的地,至于能夠達到目的地,達到目的地的時 間以及內容的正確性都是不能保證的。

既然有了保證可靠傳輸的TCP協議,為什么還要非可靠傳輸的UDP協議呢?原因有兩個:

1、可靠的傳輸是要付出代價的,對數據內容的正確性的檢驗必然會占用計算機處理時間和網絡帶寬。因此TCP的傳輸效率不如UDP高。

2、許多應用中并不需要保證嚴格的傳輸可靠性,比如視頻會議系統,并不要求視頻音頻數據絕對正確,只要能夠連貫就可以了。所以在這些場景下,使用UDP更合適些。

5、URL訪問網上資源

1、URL對象代表統一資源定位器,是指向互聯網“資源”的指針。它是用協議名、主機、端口和資源組成,即滿足如下格式:

protocol://host:port/resourceName

http://www.crazyit.org/index.php

2、通過URL對象的一些方法可以訪問該URL對應的資源:

String getFile():獲取該URL的資源名

String getHost():獲取主機名

String getPath():獲取路徑部分

int getPort():獲取端口號

public static void main(String[] args) throws IOException
  {
    URL url = new URL("https://i.cnblogs.com/EditPosts.aspx?opt=1");
    String file = url.getFile();
    System.out.println(file);
    String host = url.getHost();
    System.out.println(host);
    int port = url.getPort();
    System.out.println(port);
    String query = url.getQuery();
    System.out.println(query);
    String protocol = url.getProtocol();
    System.out.println(protocol);
  }

執行結果:

1 /EditPosts.aspx?opt=1
2 i.cnblogs.com
3 -1
4 opt=1
5 https

上面展示了URL對象的常用方法,下面來看看URL最重要的兩個方法:openConnection()、openStream()

public static void main(String[] args) throws IOException
  {
    URL url = new URL("http://www.baidu.com");
    URLConnection connection = url.openConnection();
    InputStream is = connection.getInputStream();
    OutputStream os = new FileOutputStream("c:/data.txt");
    byte[] buffer = new byte[1024];
    int flag = 0;
    while (-1 != (flag = is.read(buffer, 0, buffer.length)))
    {
      os.write(buffer, 0, flag);
    }
    os.close();
    is.close();
  }

執行結果:

淺談java網絡編程基礎知識

1、代碼第4行openConnection()該方法用于返回URLConnection對象,表示到URL所引用的遠程連接。

2、代碼第5行getInputStream方法,用于返回從此打開的連接讀取的輸入流。

3、后面的代碼就是我們已經很熟悉的從輸入流中讀到數據,再通過輸出流寫入文件。

4、執行的結果就是我們通過瀏覽器訪問http://www.baidu.com,百度服務器返回的內容。

5、這里是文本文件,我們將后綴修改為html,然后用瀏覽器訪問,這樣看起來更直觀:

6、InetAddress

JAVA提供了InetAddress類來代表IP地址。

public static void main(String[] args) throws IOException
  {
    InetAddress address = InetAddress.getLocalHost();
    System.out.println(address);
    address = InetAddress.getByName("www.baidu.com");
    System.out.println(address);
    
  }

執行結果:

 WINDOWS-EC813QQ/192.168.88.1
 www.baidu.com/115.239.211.112

以上就是關于淺談java網絡編程基礎知識的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節
推薦閱讀:
  1. RAID淺談
  2. 淺談 接口

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建宁县| 兖州市| 佛山市| 定日县| 瑞安市| 鸡西市| 喜德县| 望城县| 镇安县| 敦煌市| 沭阳县| 白银市| 灵璧县| 永川市| 叶城县| 泰顺县| 灵川县| 平利县| 观塘区| 土默特左旗| 靖边县| 鄯善县| 乌兰浩特市| 海口市| 五华县| 且末县| 合川市| 阳谷县| 浙江省| 垫江县| 郸城县| 定结县| 武乡县| 嘉黎县| 迭部县| 南阳市| 桓台县| 枣强县| 星子县| 岳西县| 宽城|