最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

這里對(duì)于7層模型不展開(kāi)來(lái)講,只選擇跟這次系列主題相關(guān)的知識(shí)點(diǎn)介紹。

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

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

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

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

3、IP地址和端口號(hào)

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

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

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

4、TCP和UDP

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

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

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

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

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

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

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

protocol://host:port/resourceName

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

2、通過(guò)URL對(duì)象的一些方法可以訪(fǎng)問(wèn)該URL對(duì)應(yīng)的資源:

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

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

String getPath():獲取路徑部分

int getPort():獲取端口號(hào)

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對(duì)象的常用方法,下面來(lái)看看URL最重要的兩個(gè)方法: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對(duì)象,表示到URL所引用的遠(yuǎn)程連接。

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

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

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

5、這里是文本文件,我們將后綴修改為html,然后用瀏覽器訪(fǎng)問(wèn),這樣看起來(lái)更直觀(guān):

6、InetAddress

JAVA提供了InetAddress類(lèi)來(lái)代表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ǔ)知識(shí)介紹的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱:Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例、Java網(wǎng)絡(luò)編程基礎(chǔ)篇之單向通信等,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的,感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • springboot中配置好登錄攔截后,swagger訪(fǎng)問(wèn)不了問(wèn)題

    springboot中配置好登錄攔截后,swagger訪(fǎng)問(wèn)不了問(wèn)題

    這篇文章主要介紹了springboot中配置好登錄攔截后,swagger訪(fǎng)問(wèn)不了問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java 守護(hù)線(xiàn)程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java 守護(hù)線(xiàn)程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java語(yǔ)言機(jī)制是構(gòu)建在JVM的基礎(chǔ)之上的,意思是Java平臺(tái)把操作系統(tǒng)的底層給屏蔽起來(lái),所以它可以在它自己的虛擬的平臺(tái)里面構(gòu)造出對(duì)自己有利的機(jī)制,而語(yǔ)言或者說(shuō)平臺(tái)的設(shè)計(jì)者多多少少是收到Unix思想的影響,而守護(hù)線(xiàn)程機(jī)制又是對(duì)JVM這樣的平臺(tái)湊合,于是守護(hù)線(xiàn)程應(yīng)運(yùn)而生
    2017-05-05
  • java實(shí)現(xiàn)HmacSHA256算法進(jìn)行加密方式

    java實(shí)現(xiàn)HmacSHA256算法進(jìn)行加密方式

    這篇文章主要介紹了java實(shí)現(xiàn)HmacSHA256算法進(jìn)行加密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Spring?Boot常用功能Profile詳解

    Spring?Boot常用功能Profile詳解

    SpringBootProfile是一個(gè)很常用的功能,我們可以通過(guò)為開(kāi)發(fā)/測(cè)試/生產(chǎn)環(huán)境配置不同的profile來(lái)實(shí)現(xiàn)配置隔離,那么在SpringBoot項(xiàng)目中是如何實(shí)現(xiàn)profile功能的呢
    2022-07-07
  • Spring?Security認(rèn)證的完整流程記錄

    Spring?Security認(rèn)證的完整流程記錄

    相信大伙對(duì)Spring Security這個(gè)框架又愛(ài)又恨,愛(ài)它的強(qiáng)大,恨它的繁瑣,下面這篇文章主要給大家介紹了關(guān)于Spring?Security認(rèn)證流程的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • MyBatis?的?XML?配置文件和緩存使用步驟

    MyBatis?的?XML?配置文件和緩存使用步驟

    MyBatis?包含一個(gè)非常強(qiáng)大的查詢(xún)緩存特性,它可以非常方便地配置和定制,這篇文章主要介紹了MyBatis的XML配置文件和緩存,需要的朋友可以參考下
    2022-01-01
  • 動(dòng)態(tài)配置Spring Boot日志級(jí)別的全步驟

    動(dòng)態(tài)配置Spring Boot日志級(jí)別的全步驟

    這篇文章主要給大家介紹了關(guān)于動(dòng)態(tài)配置Spring Boot日志級(jí)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 淺談spring security入門(mén)

    淺談spring security入門(mén)

    這篇文章主要介紹了淺談spring security入門(mén),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java 面向?qū)ο笾^承篇詳解原理與特點(diǎn)

    Java 面向?qū)ο笾^承篇詳解原理與特點(diǎn)

    繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類(lèi)。繼承就是子類(lèi)繼承父類(lèi)的特征和行為,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例域和方法,或子類(lèi)從父類(lèi)繼承方法,使得子類(lèi)具有父類(lèi)相同的行為
    2021-10-10
  • 一篇看懂Java中的Unsafe類(lèi)

    一篇看懂Java中的Unsafe類(lèi)

    在閱讀AtomicInteger的源碼時(shí),看到了這個(gè)類(lèi):sum.msic.Unsafe,之前從沒(méi)見(jiàn)過(guò)。所以花了點(diǎn)時(shí)間研究了下,下面這篇文章主要給大家介紹了關(guān)于Java中Unsafe類(lèi)的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05

最新評(píng)論

白玉县| 通州区| 上犹县| 怀宁县| 塔河县| 常州市| 宁安市| 涡阳县| 泗洪县| 东光县| 尚义县| 新郑市| 灵丘县| 永靖县| 乐陵市| 孟津县| 临澧县| 东兰县| 海盐县| 廉江市| 陆良县| 镇远县| 瑞丽市| 铁岭县| 巩义市| 泗洪县| 承德市| 建水县| 望都县| 镇平县| 九龙县| 合阳县| 米脂县| 渝北区| 大丰市| 调兵山市| 扬州市| 中卫市| 区。| 齐河县| 比如县|