欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java網(wǎng)絡(luò)編程基礎(chǔ)知識介紹

 更新時間:2017年11月07日 15:04:15   作者:冬瓜蔡  
這篇文章主要介紹了java網(wǎng)絡(luò)編程基礎(chǔ)知識介紹,涉及OSI分層模型和TCP/IP分層模型的對應(yīng)關(guān)系、IP地址、端口號、tcp、udp等相關(guān)內(nèi)容,還是比較不錯的,這里分享給大家,供需要的朋友參考。

網(wǎng)絡(luò)基礎(chǔ)知識

1、OSI分層模型和TCP/IP分層模型的對應(yīng)關(guān)系

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

2、七層模型與協(xié)議的對應(yīng)關(guān)系

網(wǎng)絡(luò)層 ------------ IP(網(wǎng)絡(luò)之間的互聯(lián)協(xié)議)

傳輸層 ------------ TCP(傳輸控制協(xié)議)、UDP(用戶數(shù)據(jù)報協(xié)議)

應(yīng)用層 ------------ Telnet(Internet遠(yuǎn)程登錄服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式)、FTP(文本傳輸協(xié)議)、HTTP(超文本傳送協(xié)議)

3、IP地址和端口號

1、ip地址用于唯一標(biāo)示網(wǎng)絡(luò)中的一個通信實體,這個通信實體可以是一臺主機(jī),可以是一臺打印機(jī),或者是路由器的某一個端口。而在基于IP協(xié)議網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包,必須使用IP 地址來進(jìn)行標(biāo)示。ip地址就像寫一封信,必須指定收件人的地址一樣。每個被傳輸?shù)臄?shù)據(jù)包中都包括了一個源IP和目標(biāo)IP。

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

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

4、TCP和UDP

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

2、UDP是一種無連接的協(xié)議,每個數(shù)據(jù)報都是一個獨立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳送目的地,至于能夠達(dá)到目的地,達(dá)到目的地的時 間以及內(nèi)容的正確性都是不能保證的。

既然有了保證可靠傳輸?shù)腡CP協(xié)議,為什么還要非可靠傳輸?shù)腢DP協(xié)議呢?原因有兩個:

1、可靠的傳輸是要付出代價的,對數(shù)據(jù)內(nèi)容的正確性的檢驗必然會占用計算機(jī)處理時間和網(wǎng)絡(luò)帶寬。因此TCP的傳輸效率不如UDP高。

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

5、URL訪問網(wǎng)上資源

1、URL對象代表統(tǒng)一資源定位器,是指向互聯(lián)網(wǎng)“資源”的指針。它是用協(xié)議名、主機(jī)、端口和資源組成,即滿足如下格式:

protocol://host:port/resourceName

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

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

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

String getHost():獲取主機(jī)名

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);
  }

執(zhí)行結(jié)果:

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();
  }

執(zhí)行結(jié)果:

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

2、代碼第5行g(shù)etInputStream方法,用于返回從此打開的連接讀取的輸入流。

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

4、執(zhí)行的結(jié)果就是我們通過瀏覽器訪問http://www.baidu.com,百度服務(wù)器返回的內(nèi)容。

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);
    
  }

執(zhí)行結(jié)果:

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

總結(jié)

以上就是本文關(guān)于java網(wǎng)絡(luò)編程基礎(chǔ)知識介紹的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱:Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例Java網(wǎng)絡(luò)編程基礎(chǔ)篇之單向通信等,有什么問題可以隨時留言,小編會及時回復(fù)大家的,感謝朋友們對本站的支持!

相關(guān)文章

  • 解決mybatis映射結(jié)果集失效的問題

    解決mybatis映射結(jié)果集失效的問題

    這篇文章主要介紹了解決mybatis映射結(jié)果集失效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Java AQS中ReentrantReadWriteLock讀寫鎖的使用

    Java AQS中ReentrantReadWriteLock讀寫鎖的使用

    ReentrantReadWriteLock稱為讀寫鎖,它提供一個讀鎖,支持多個線程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應(yīng)用場景,感興趣的可以了解一下
    2023-02-02
  • Java+Freemarker實現(xiàn)根據(jù)XML模板文件生成Word文檔

    Java+Freemarker實現(xiàn)根據(jù)XML模板文件生成Word文檔

    這篇文章主要為大家詳細(xì)介紹了Java如何使用Freemarker實現(xiàn)根據(jù)XML模板文件生成Word文檔,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-11-11
  • 理解java多線程中ExecutorService使用

    理解java多線程中ExecutorService使用

    這篇文章主要幫助大家理解java多線程中ExcetorServiced的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JVM中最耗cpu的線程查找方法

    JVM中最耗cpu的線程查找方法

    這篇文章主要為大家介紹了JVM中最耗cpu的線程查找方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • jpa實現(xiàn)多對多的屬性時查詢的兩種方法

    jpa實現(xiàn)多對多的屬性時查詢的兩種方法

    這篇文章主要介紹了jpa實現(xiàn)多對多的屬性時查詢的兩種方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java高級用法之JNA中的Function

    java高級用法之JNA中的Function

    這篇文章主要介紹了java高級用法之JNA中的Function,JAVA中的映射在JNA中就是一個function。通過或者function對象,我們可以實現(xiàn)一些非常強(qiáng)大的功能,下面一起進(jìn)入文章看看具體內(nèi)容吧
    2022-04-04
  • SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過程

    SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過程

    這篇文章主要介紹了SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過程,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • java常用工具類之?dāng)?shù)據(jù)庫連接類(可以連接多種數(shù)據(jù)庫)

    java常用工具類之?dāng)?shù)據(jù)庫連接類(可以連接多種數(shù)據(jù)庫)

    這篇文章主要介紹了java常用工具類之?dāng)?shù)據(jù)庫連接類,可以連接多種數(shù)據(jù)庫,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2014-07-07
  • Java枚舉類使用場景及實例解析

    Java枚舉類使用場景及實例解析

    這篇文章主要介紹了Java枚舉類使用場景及實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論