成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java Socket編程之常識網(wǎng)絡(luò)基礎(chǔ)知識

Jeff / 1260人閱讀

摘要:如地址端口號組成了所謂的,是網(wǎng)絡(luò)上運(yùn)行的程序之間雙向通信鏈路的終結(jié)點(diǎn),是和的基礎(chǔ)套接字網(wǎng)絡(luò)上具有唯一標(biāo)識的地址和端口組合在一起才能構(gòu)成唯一能識別的標(biāo)識符套接字。

更多物聯(lián)網(wǎng)高并發(fā)編程知識請移步:https://www.yuque.com/shizhiy...

Java Socket編程之常識網(wǎng)絡(luò)基礎(chǔ)知識

網(wǎng)絡(luò)基礎(chǔ)知識(參考計(jì)算機(jī)網(wǎng)絡(luò))
? 《TCP/IP協(xié)議棧及OSI參考模型詳解》
? ? ? ? ??

兩臺計(jì)算機(jī)間進(jìn)行通訊需要以下三個(gè)條件

? ? ? ? ? ?IP地址、協(xié)議、端口號

TCP/IP協(xié)議

目前世界上應(yīng)用最為廣泛的協(xié)議,是以TCP和IP為基礎(chǔ)的不同層次上多個(gè)協(xié)議的集合,也成TCP/IP協(xié)議族、或TCP/IP協(xié)議棧

TCP:Transmission Control Protocol 傳輸控制協(xié)議

IP:Internet Protocol 互聯(lián)網(wǎng)協(xié)議

TCP/IP五層模型

應(yīng)用層:HTTP、FTP、SMTP、Telnet等

傳輸層:TCP/IP

網(wǎng)絡(luò)層:

數(shù)據(jù)鏈路層:

物理層:網(wǎng)線、雙絞線、網(wǎng)卡等

IP地址

為實(shí)現(xiàn)網(wǎng)絡(luò)中不同計(jì)算機(jī)之間的通信,每臺計(jì)算機(jī)都必須有一個(gè)唯一的標(biāo)識---IP地址。?32位二進(jìn)制

端口

區(qū)分一臺主機(jī)的多個(gè)不同應(yīng)用程序,端口號范圍為0-65535,其中0-1023位為系統(tǒng)保留。? ??

如:HTTP:80 ?FTP:21 Telnet:23

IP地址+端口號組成了所謂的Socket,Socket是網(wǎng)絡(luò)上運(yùn)行的程序之間雙向通信鏈路的終結(jié)點(diǎn),是TCP和UDP的基礎(chǔ)

Socket套接字

網(wǎng)絡(luò)上具有唯一標(biāo)識的IP地址和端口組合在一起才能構(gòu)成唯一能識別的標(biāo)識符套接字。
Socket原理機(jī)制:

通信的兩端都有Socket

網(wǎng)絡(luò)通信其實(shí)就是Socket間的通信

數(shù)據(jù)在兩個(gè)Socket間通過IO傳輸 ? ? ?

Java中的網(wǎng)絡(luò)支持

針對網(wǎng)絡(luò)通信的不同層次,Java提供了不同的API,其提供的網(wǎng)絡(luò)功能有四大類:

InetAddress:用于標(biāo)識網(wǎng)絡(luò)上的硬件資源,主要是IP地址

URL:統(tǒng)一資源定位符,通過URL可以直接讀取或?qū)懭刖W(wǎng)絡(luò)上的數(shù)據(jù)

Sockets:使用TCP協(xié)議實(shí)現(xiàn)的網(wǎng)絡(luò)通信Socket相關(guān)的類

Datagram:使用UDP協(xié)議,將數(shù)據(jù)保存在用戶數(shù)據(jù)報(bào)中,通過網(wǎng)絡(luò)進(jìn)行通信。

?

InetAddress

InetAddress類用于標(biāo)識網(wǎng)絡(luò)上的硬件資源,標(biāo)識互聯(lián)網(wǎng)協(xié)議(IP)地址。?

//獲取本機(jī)的InetAddress實(shí)例
InetAddress address =InetAddress.getLocalHost();
address.getHostName();//獲取計(jì)算機(jī)名
address.getHostAddress();//獲取IP地址
byte[] bytes = address.getAddress();//獲取字節(jié)數(shù)組形式的IP地址,以點(diǎn)分隔的四部分

//獲取其他主機(jī)的InetAddress實(shí)例
InetAddress address2 =InetAddress.getByName("其他主機(jī)名");
InetAddress address3 =InetAddress.getByName("IP地址");

URL類

URL(Uniform Resource Locator)統(tǒng)一資源定位符,表示Internet上某一資源的地址,協(xié)議名:資源名稱?

//創(chuàng)建一個(gè)URL的實(shí)例
URL baidu =new URL("http://www.baidu.com");
URL url =new URL(baidu,"/index.html?username=tom#test");//?表示參數(shù),#表示錨點(diǎn)
url.getProtocol();//獲取協(xié)議
url.getHost();//獲取主機(jī)
url.getPort();//如果沒有指定端口號,根據(jù)協(xié)議不同使用默認(rèn)端口。此時(shí)getPort()方法的返回值為 -1
url.getPath();//獲取文件路徑
url.getFile();//文件名,包括文件路徑+參數(shù)
url.getRef();//相對路徑,就是錨點(diǎn),即#號后面的內(nèi)容
url.getQuery();//查詢字符串,即參數(shù)

使用URL讀取網(wǎng)頁內(nèi)容

通過URL對象的openStream()方法可以得到指定資源的輸入流,通過流能夠讀取或訪問網(wǎng)頁上的資源

//使用URL讀取網(wǎng)頁內(nèi)容
//創(chuàng)建一個(gè)URL實(shí)例
URL url = new URL("http://www.baidu.com");
InputStream is = url.openStream();//通過openStream方法獲取資源的字節(jié)輸入流
InputStreamReader isr = newInputStreamReader(is, "UTF-8");//將字節(jié)輸入流轉(zhuǎn)換為字符輸入流,如果不指定編碼,中文可能會出現(xiàn)亂碼
BufferedReader br = newBufferedReader(isr);//為字符輸入流添加緩沖,提高讀取效率
String data = br.readLine();//讀取數(shù)據(jù)
while (data != null) {
    System.out.println(data);//輸出數(shù)據(jù)
    data = br.readerLine();
}
br.close();
isr.colose();
is.close();

? ? ?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74378.html

相關(guān)文章

  • 計(jì)算機(jī)常識 - 收藏集 - 掘金

    摘要:使用簡記后端掘金全稱為即消息隊(duì)列。優(yōu)測優(yōu)社區(qū)干貨精選老司機(jī)亂談編輯器之神掘金前言是一種信仰,我自從年有了這個(gè)信仰,已經(jīng)個(gè)年頭了。 PHP 程序員進(jìn)階學(xué)習(xí)書籍參考指南 - 后端 - 掘金PHP程序員進(jìn)階學(xué)習(xí)書籍參考指南 @heiyeluren lastmodify: 2016/2/18 ... 當(dāng)我們在談?wù)撉岸思用軙r(shí),我們在談些什么 - 前端 - 掘金潘建旭,豈安科技(www.bigse...

    Yi_Zhi_Yu 評論0 收藏0
  • 練習(xí)項(xiàng)目備選清單

    摘要:練習(xí)項(xiàng)目備選清單文件下載器功能概要設(shè)計(jì)實(shí)現(xiàn)新建下載功能以為基礎(chǔ)給出下載鏈接可以啟動(dòng)下載任務(wù)實(shí)現(xiàn)局域網(wǎng)內(nèi)下載傳輸文件以單線程下載方式實(shí)現(xiàn)附加功能支持?jǐn)帱c(diǎn)續(xù)傳實(shí)現(xiàn)多線程下載實(shí)現(xiàn)下載參考技術(shù)套接字編程多線程編程音視頻播放器功能概要設(shè)計(jì)實(shí)現(xiàn)播放常見 練習(xí)項(xiàng)目備選清單 Utilities 1. 文件下載器 功能概要設(shè)計(jì): 實(shí)現(xiàn)新建下載功能(以ftp為基礎(chǔ)) 給出下載鏈接可以啟動(dòng)下載任務(wù) 實(shí)現(xiàn)局...

    guyan0319 評論0 收藏0
  • 練習(xí)項(xiàng)目備選清單

    摘要:練習(xí)項(xiàng)目備選清單文件下載器功能概要設(shè)計(jì)實(shí)現(xiàn)新建下載功能以為基礎(chǔ)給出下載鏈接可以啟動(dòng)下載任務(wù)實(shí)現(xiàn)局域網(wǎng)內(nèi)下載傳輸文件以單線程下載方式實(shí)現(xiàn)附加功能支持?jǐn)帱c(diǎn)續(xù)傳實(shí)現(xiàn)多線程下載實(shí)現(xiàn)下載參考技術(shù)套接字編程多線程編程音視頻播放器功能概要設(shè)計(jì)實(shí)現(xiàn)播放常見 練習(xí)項(xiàng)目備選清單 Utilities 1. 文件下載器 功能概要設(shè)計(jì): 實(shí)現(xiàn)新建下載功能(以ftp為基礎(chǔ)) 給出下載鏈接可以啟動(dòng)下載任務(wù) 實(shí)現(xiàn)局...

    peixn 評論0 收藏0
  • Java Socket編程TCP編程

    摘要:編程之編程全套的基礎(chǔ)編程基礎(chǔ)及深入講解協(xié)議是面向連接的可靠的有序的以字節(jié)流的方式發(fā)送數(shù)據(jù),通過三次握手方式建立連接,形成傳輸數(shù)據(jù)的通道,在連接中進(jìn)行大量數(shù)據(jù)的傳輸,效率會稍低中基于協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的類客戶端的類服務(wù)器端的類通信的步驟創(chuàng)建和打 Java Socket編程之TCP編程 全套的:https://www.yuque.com/shizhiy...基礎(chǔ):https://blog....

    i_garfileo 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<