第11章網(wǎng)絡(luò)編程_第1頁
第11章網(wǎng)絡(luò)編程_第2頁
第11章網(wǎng)絡(luò)編程_第3頁
第11章網(wǎng)絡(luò)編程_第4頁
第11章網(wǎng)絡(luò)編程_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第11章網(wǎng)絡(luò)編程章網(wǎng)絡(luò)編程11.1網(wǎng)絡(luò)通信概念網(wǎng)絡(luò)通信概念 u網(wǎng)絡(luò):用物理鏈路將各個(gè)孤立的工作站網(wǎng)絡(luò):用物理鏈路將各個(gè)孤立的工作站或主機(jī)相連在一起,或主機(jī)相連在一起,實(shí)現(xiàn)資源共享和通實(shí)現(xiàn)資源共享和通信信本章內(nèi)容本章內(nèi)容u網(wǎng)絡(luò)通信概念網(wǎng)絡(luò)通信概念uURLu基于基于TCP的的Socket編程編程u基于基于UDP的的Socket編程編程u基于基于SSL的的Socket編程編程 u網(wǎng)絡(luò)通信的核心是協(xié)議。協(xié)議是指進(jìn)程之網(wǎng)絡(luò)通信的核心是協(xié)議。協(xié)議是指進(jìn)程之間交換信息以完成任務(wù)所使用的一系列規(guī)間交換信息以完成任務(wù)所使用的一系列規(guī)則和規(guī)范。它主要包含兩個(gè)方面的定義:則和規(guī)范。它主要包含兩個(gè)方面的定義: 1)

2、定義了進(jìn)程之間交換消息所必需遵循定義了進(jìn)程之間交換消息所必需遵循的順序的順序 2)定義進(jìn)程之間所交換的消息的格式定義進(jìn)程之間所交換的消息的格式u網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)之間溝通、交流的橋梁,網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)之間溝通、交流的橋梁,只有相同網(wǎng)絡(luò)協(xié)議的計(jì)算機(jī)才能進(jìn)行信息只有相同網(wǎng)絡(luò)協(xié)議的計(jì)算機(jī)才能進(jìn)行信息的溝通與交流的溝通與交流u網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)可分為兩類:網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)可分為兩類:n事實(shí)標(biāo)準(zhǔn):由廠家制定的,未經(jīng)有關(guān)標(biāo)準(zhǔn)化組事實(shí)標(biāo)準(zhǔn):由廠家制定的,未經(jīng)有關(guān)標(biāo)準(zhǔn)化組織審定通過,但由于廣泛使用形成了事實(shí)標(biāo)準(zhǔn)織審定通過,但由于廣泛使用形成了事實(shí)標(biāo)準(zhǔn)n法定標(biāo)準(zhǔn):經(jīng)有關(guān)標(biāo)準(zhǔn)化組織審定通過的標(biāo)準(zhǔn)法定標(biāo)準(zhǔn):經(jīng)有關(guān)標(biāo)準(zhǔn)化組織審定通過

3、的標(biāo)準(zhǔn)。國(guó)際上的標(biāo)準(zhǔn)化組織有:。國(guó)際上的標(biāo)準(zhǔn)化組織有:(1)國(guó)際電信聯(lián)盟(國(guó)際電信聯(lián)盟(ITU,International Telecommunication Union)(2)國(guó)際標(biāo)準(zhǔn)化組織()國(guó)際標(biāo)準(zhǔn)化組織(ISO,International Standards Organization)(3)Internet體系結(jié)構(gòu)委員會(huì)(體系結(jié)構(gòu)委員會(huì)(IAB,Internet Architecture Board)uISO/ OSI RM:開放式系統(tǒng)互連參考模型:開放式系統(tǒng)互連參考模型,國(guó)際標(biāo)準(zhǔn)化組織給出的通用參考協(xié)議:,國(guó)際標(biāo)準(zhǔn)化組織給出的通用參考協(xié)議:n七層協(xié)議:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳七

4、層協(xié)議:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層輸層、會(huì)話層、表示層和應(yīng)用層 n沒有得到市場(chǎng)的認(rèn)可沒有得到市場(chǎng)的認(rèn)可uTCP/IP: 傳輸控制協(xié)議傳輸控制協(xié)議/網(wǎng)間協(xié)議,是網(wǎng)間協(xié)議,是Internet的主要協(xié)議,的主要協(xié)議,在在60年代由麻省年代由麻省理工學(xué)院和一些商業(yè)組織為美國(guó)國(guó)防部開理工學(xué)院和一些商業(yè)組織為美國(guó)國(guó)防部開發(fā)的發(fā)的ARPANET基礎(chǔ)上誕生的基礎(chǔ)上誕生的n四層體系結(jié)構(gòu):應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和網(wǎng)四層體系結(jié)構(gòu):應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和網(wǎng)絡(luò)接口層。在實(shí)際應(yīng)用中,網(wǎng)絡(luò)接口層包含數(shù)絡(luò)接口層。在實(shí)際應(yīng)用中,網(wǎng)絡(luò)接口層包含數(shù)據(jù)鏈路層和物理層據(jù)鏈路層和物理層 n事實(shí)上的國(guó)際標(biāo)

5、準(zhǔn)網(wǎng)絡(luò)協(xié)議事實(shí)上的國(guó)際標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議u網(wǎng)絡(luò)地址:網(wǎng)絡(luò)地址:網(wǎng)絡(luò)上的計(jì)算機(jī)通過網(wǎng)絡(luò)地址網(wǎng)絡(luò)上的計(jì)算機(jī)通過網(wǎng)絡(luò)地址標(biāo)識(shí)。兩種表示方法:標(biāo)識(shí)。兩種表示方法:nIP地址:由地址:由點(diǎn)號(hào)分隔,點(diǎn)號(hào)分隔,4個(gè)整數(shù),個(gè)整數(shù),32位地址。每個(gè)位地址。每個(gè)32位位IP地址被分割成兩地址被分割成兩部分:前綴和后綴。地址前綴部分確定部分:前綴和后綴。地址前綴部分確定了計(jì)算機(jī)從屬的物理網(wǎng)絡(luò);后綴部分確了計(jì)算機(jī)從屬的物理網(wǎng)絡(luò);后綴部分確定了該網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī)。例如:定了該網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī)。例如: n域名:域名:將特定將特定 IP 地址映射至字符串地址映射至字符串。例如:例如: 11.2統(tǒng)一資源定

6、位器(統(tǒng)一資源定位器(URL)的使用)的使用表示同表示同一地址一地址u 用類用類InetAddress的實(shí)例對(duì)象來封裝網(wǎng)絡(luò)地的實(shí)例對(duì)象來封裝網(wǎng)絡(luò)地址,并獲取其相關(guān)信息址,并獲取其相關(guān)信息u 未提供構(gòu)造方法??捎闷涑蓡T方法獲得對(duì)象未提供構(gòu)造方法??捎闷涑蓡T方法獲得對(duì)象u 類類InetAddress的常用方法:的常用方法:ngetLocalHost()/獲取本地計(jì)算機(jī)的網(wǎng)獲取本地計(jì)算機(jī)的網(wǎng)絡(luò)地址,包括絡(luò)地址,包括本地機(jī)的域名和本地機(jī)的域名和IP地址。本地址。本地機(jī)的網(wǎng)絡(luò)地址可表示為地機(jī)的網(wǎng)絡(luò)地址可表示為“ ”或或“l(fā)ocalhost”ngetByAddress(byte addr

7、)/獲取獲取addr指定的指定的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)地址地址對(duì)應(yīng)的網(wǎng)絡(luò)地址ngetByName (String host)/獲取獲取host指定的主機(jī)名或指定的主機(jī)名或IP地址所對(duì)應(yīng)的網(wǎng)絡(luò)地址所對(duì)應(yīng)的網(wǎng)絡(luò)地址地址包中包中返回返回InetAddress對(duì)象對(duì)象,拋拋UnknowHostException【例例11-1】獲取網(wǎng)絡(luò)地址的使用(獲取網(wǎng)絡(luò)地址的使用(InetAddressUse.java)u其中:其中:n傳輸協(xié)議:指明獲取資源所使用的網(wǎng)絡(luò)傳輸協(xié)傳輸協(xié)議:指明獲取資源所使用的網(wǎng)絡(luò)傳輸協(xié)議,如議,如http、ftp、file等等n主機(jī)名:指定資源所在的計(jì)算機(jī),可以是主機(jī)名:指定資源所在的計(jì)算機(jī)

8、,可以是IP地地址,如址,如,也可以是主機(jī)名或域名,如,也可以是主機(jī)名或域名,如n一個(gè)計(jì)算機(jī)中可能有多種服務(wù)(應(yīng)用程序),一個(gè)計(jì)算機(jī)中可能有多種服務(wù)(應(yīng)用程序),端口號(hào)用來區(qū)分不同的網(wǎng)絡(luò)服務(wù),如端口號(hào)用來區(qū)分不同的網(wǎng)絡(luò)服務(wù),如http服務(wù)服務(wù)的默認(rèn)端口號(hào)是的默認(rèn)端口號(hào)是80,ftp服務(wù)的默認(rèn)端口號(hào)是服務(wù)的默認(rèn)端口號(hào)是21等等http:/:8080/docs/index.html#j2sen端口號(hào)是一個(gè)整數(shù),通常范圍在端口號(hào)是一個(gè)整數(shù),通常范圍在065535之間(即之間(即16位二進(jìn)制整數(shù))位二進(jìn)制整數(shù))n小于小于1024的端口號(hào)一般分配給特定的服務(wù)協(xié)議,如:的端口號(hào)一般分配給

9、特定的服務(wù)協(xié)議,如:nHTTP(超文本傳輸協(xié)議)的默認(rèn)端口是(超文本傳輸協(xié)議)的默認(rèn)端口是80nFTP文件傳送協(xié)議(文件傳送協(xié)議(File Transfer Protocol,簡(jiǎn)稱簡(jiǎn)稱FTP)的端口號(hào)是)的端口號(hào)是21(控制端口),(控制端口),20(數(shù)(數(shù)據(jù)端口)據(jù)端口)nTELNET(遠(yuǎn)程登錄)的默認(rèn)端口是(遠(yuǎn)程登錄)的默認(rèn)端口是23nSMTP(Simple Mail Transfer Protocol,簡(jiǎn),簡(jiǎn)單郵件傳輸協(xié)議)的默認(rèn)端口是單郵件傳輸協(xié)議)的默認(rèn)端口是25n如果沒有注明端口號(hào),如果沒有注明端口號(hào), URL將使用默認(rèn)的端口號(hào)將使用默認(rèn)的端口號(hào) 11.2統(tǒng)一資源定位器(統(tǒng)一資源定

10、位器(URL)的使用)的使用uURL(Uniform Resource Locator,URL):統(tǒng)一資源定位器(網(wǎng)絡(luò)資源定位器):統(tǒng)一資源定位器(網(wǎng)絡(luò)資源定位器),表示,表示Internet上某一資源的地址,上某一資源的地址, 只要只要按按URL規(guī)則定義某個(gè)資源,那么網(wǎng)絡(luò)上的規(guī)則定義某個(gè)資源,那么網(wǎng)絡(luò)上的其他程序就可以通過其他程序就可以通過URL來訪問它來訪問它uURL的值通常由的值通常由5部分組成,格式如下部分組成,格式如下: 例如:例如:http:/:8080/docs/index.html#j2se:/:/ n文件名:包括該文件的完整路徑。在文件名:包括該文件的完整路徑。在http協(xié)議

11、協(xié)議中,缺省的文件名是中,缺省的文件名是index.html,因此:因此:n引用:為資源文件內(nèi)部的某個(gè)引用,用來定位引用:為資源文件內(nèi)部的某個(gè)引用,用來定位顯示文件內(nèi)容的位置,如顯示文件內(nèi)容的位置,如http:/ 等同于等同于 http:/ spec) /參數(shù)指定協(xié)議、主機(jī)名、端口參數(shù)指定協(xié)議、主機(jī)名、端口號(hào)、文件名號(hào)、文件名nURL(String protocol ,String host, String file) /參數(shù)參數(shù)指定協(xié)議名、主機(jī)名、文件名指定協(xié)議名、主機(jī)名、文件名nURL(String protocol ,String host, Sting port,String file

12、)/參數(shù)指定協(xié)議名、主機(jī)名、端口號(hào)、文件名參數(shù)指定協(xié)議名、主機(jī)名、端口號(hào)、文件名 u例如:例如:tryURL u = new URL(http:/); catch( MalformedURLException e)u常用方法:常用方法:ngetProtocol() ngetHost() ngetPort()ngetFile()nnopenStream()/與與取出取出URL的指的指定成分信息定成分信息【例例11-2】URL的使用的使用(URLUse.java)u讀取網(wǎng)絡(luò)資源數(shù)據(jù)的步驟如下:讀取網(wǎng)絡(luò)資源數(shù)據(jù)的步驟如下:(1)創(chuàng)建類)創(chuàng)建類URL的實(shí)例對(duì)象,使其指向給定的實(shí)例對(duì)象,使其指向給定的網(wǎng)

13、絡(luò)資源的網(wǎng)絡(luò)資源(2)通過類)通過類URL的成員方法的成員方法openStream()建立建立起起URL連接,并返回輸入流對(duì)象的引用,以連接,并返回輸入流對(duì)象的引用,以便讀取數(shù)據(jù)便讀取數(shù)據(jù)(3)通過)通過java.io.BufferedInputStream或或java.io.BufferedReader封裝輸入流封裝輸入流(4)讀取數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理)讀取數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理(5)關(guān)閉數(shù)據(jù)流)關(guān)閉數(shù)據(jù)流u其中,步驟(其中,步驟(3)是可選的。當(dāng)網(wǎng)絡(luò)不穩(wěn)定)是可選的。當(dāng)網(wǎng)絡(luò)不穩(wěn)定或速度很慢時(shí),通過步驟(或速度很慢時(shí),通過步驟(3)可以提高獲)可以提高獲取網(wǎng)絡(luò)資源數(shù)據(jù)的速度取網(wǎng)絡(luò)資源數(shù)據(jù)的速度

14、 【例例11-3】通過通過URL獲取網(wǎng)絡(luò)資源的使用獲取網(wǎng)絡(luò)資源的使用import java.io.BufferedReader;import java.io.InputStreamReader;import .URL;public class URLReadDataUsepublic URLReadDataUse()try URL url=new URL(http:/); BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream( );String s; while (s=br.readLine( ) !

15、= null) /讀取網(wǎng)絡(luò)資源信息讀取網(wǎng)絡(luò)資源信息 System.out.println(s); /輸出網(wǎng)絡(luò)資源信息輸出網(wǎng)絡(luò)資源信息 br.close( ); catch (Exception e)System.err.println(e); e.printStackTrace( ); public static void main(String args)new URLReadDataUse();URL資源的讀取資源的讀取可能會(huì)引起堵塞,可能會(huì)引起堵塞,應(yīng)在一個(gè)線程中應(yīng)在一個(gè)線程中讀取,以免堵塞讀取,以免堵塞主線程主線程顯示顯示URL資源中的資源中的html文件文件uJavax.swing包

16、中的包中的JEditorPane容器容器可以解釋執(zhí)行可以解釋執(zhí)行html文件,也就是說,如果文件,也就是說,如果你把你把html文件讀入到文件讀入到JEditorPane,該,該html文件就會(huì)被解釋執(zhí)行,顯示在文件就會(huì)被解釋執(zhí)行,顯示在JEditorPane容器中,這樣就可看到網(wǎng)頁容器中,這樣就可看到網(wǎng)頁的運(yùn)行效果的運(yùn)行效果11.3Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程11.3.1 Java網(wǎng)絡(luò)編程概述網(wǎng)絡(luò)編程概述 u 最主要的工作就是在發(fā)送端把信息通最主要的工作就是在發(fā)送端把信息通過規(guī)定好的協(xié)議分封裝成包,在接收過規(guī)定好的協(xié)議分封裝成包,在接收端按照規(guī)定好的協(xié)議把包進(jìn)行解析,端按照規(guī)定好的協(xié)議把包進(jìn)行解

17、析,從而提取出對(duì)應(yīng)的信息從而提取出對(duì)應(yīng)的信息u 通過使用套接字來實(shí)現(xiàn)進(jìn)程間的通信通過使用套接字來實(shí)現(xiàn)進(jìn)程間的通信:端到端端到端的連接與通信的連接與通信u 網(wǎng)絡(luò)上的兩個(gè)程序(進(jìn)程)通過一個(gè)網(wǎng)絡(luò)上的兩個(gè)程序(進(jìn)程)通過一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,雙雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,雙向鏈路的一端稱為一個(gè)向鏈路的一端稱為一個(gè)socket(套接套接字)字)u套接字:一種基于網(wǎng)絡(luò)通訊的接口,套接字:一種基于網(wǎng)絡(luò)通訊的接口, 建立建立服務(wù)器和客戶端之間的連接服務(wù)器和客戶端之間的連接u端口號(hào)與端口號(hào)與IP地址組合即為一個(gè)套接字:地址組合即為一個(gè)套接字: IP地址標(biāo)識(shí)地址標(biāo)識(shí)Internet上的計(jì)算機(jī),端口

18、上的計(jì)算機(jī),端口號(hào)標(biāo)識(shí)正在計(jì)算機(jī)上運(yùn)行的進(jìn)程(程序)號(hào)標(biāo)識(shí)正在計(jì)算機(jī)上運(yùn)行的進(jìn)程(程序)uJava Socket:Java應(yīng)用程序和網(wǎng)絡(luò)協(xié)應(yīng)用程序和網(wǎng)絡(luò)協(xié)議的接口,提供若干個(gè)類的定義,議的接口,提供若干個(gè)類的定義,提供網(wǎng)提供網(wǎng)絡(luò)上兩臺(tái)計(jì)算機(jī)之間(程序之間)交互通絡(luò)上兩臺(tái)計(jì)算機(jī)之間(程序之間)交互通信的可靠連接信的可靠連接 ,實(shí)現(xiàn)網(wǎng)絡(luò)通信,實(shí)現(xiàn)網(wǎng)絡(luò)通信 uTCP Socket:使用:使用TCP協(xié)議實(shí)現(xiàn)可協(xié)議實(shí)現(xiàn)可靠的網(wǎng)絡(luò)通信靠的網(wǎng)絡(luò)通信uUDP Socket:使用:使用UDP協(xié)議實(shí)現(xiàn)效協(xié)議實(shí)現(xiàn)效率較高的網(wǎng)絡(luò)通信率較高的網(wǎng)絡(luò)通信uSSL Socket:使用:使用SSL協(xié)議實(shí)現(xiàn)安協(xié)議實(shí)現(xiàn)安全的網(wǎng)絡(luò)編

19、程全的網(wǎng)絡(luò)編程u在在Java網(wǎng)絡(luò)編程中,一個(gè)套接字由:網(wǎng)絡(luò)編程中,一個(gè)套接字由:主機(jī)號(hào)、端口號(hào)和協(xié)議名三部分主要內(nèi)主機(jī)號(hào)、端口號(hào)和協(xié)議名三部分主要內(nèi)容組成容組成 uJava網(wǎng)絡(luò)編程可在以下網(wǎng)絡(luò)編程可在以下4個(gè)層次上進(jìn)行:個(gè)層次上進(jìn)行:nURL層次,最高級(jí)層次,利用層次,最高級(jí)層次,利用URL直接進(jìn)行直接進(jìn)行Internt上的資源訪問和數(shù)據(jù)傳輸上的資源訪問和數(shù)據(jù)傳輸nSocket層次,常用網(wǎng)絡(luò)編程方式,通過在層次,常用網(wǎng)絡(luò)編程方式,通過在Client/Server結(jié)構(gòu)的應(yīng)用程序之間建立結(jié)構(gòu)的應(yīng)用程序之間建立Socket套套接字連接,然后在連接之上進(jìn)行數(shù)據(jù)通信。主動(dòng)接字連接,然后在連接之上進(jìn)行數(shù)據(jù)

20、通信。主動(dòng)發(fā)起通信的一方被稱為客戶端;接收請(qǐng)求進(jìn)行通發(fā)起通信的一方被稱為客戶端;接收請(qǐng)求進(jìn)行通信的一方被稱為服務(wù)器信的一方被稱為服務(wù)器nDatagram數(shù)據(jù)流層次,最低級(jí)層次,使用數(shù)據(jù)流層次,最低級(jí)層次,使用“用戶用戶數(shù)據(jù)報(bào)協(xié)議(數(shù)據(jù)報(bào)協(xié)議(UDP)”nSSL是基于加密和安全的網(wǎng)絡(luò)編程是基于加密和安全的網(wǎng)絡(luò)編程 包中的包中的Socket類實(shí)現(xiàn)了客戶端的通信功能類實(shí)現(xiàn)了客戶端的通信功能、ServerSocket類實(shí)現(xiàn)了服務(wù)器端的通信功能類實(shí)現(xiàn)了服務(wù)器端的通信功能u通過套接字建立連接的步驟:通過套接字建立連接的步驟: n服務(wù)器建立進(jìn)程,創(chuàng)建一個(gè)服務(wù)器建立進(jìn)程,創(chuàng)建一個(gè)ServerSocket對(duì)象對(duì)

21、象,監(jiān)聽每個(gè)端口(客戶端)是否要求進(jìn)行通信,監(jiān)聽每個(gè)端口(客戶端)是否要求進(jìn)行通信n客戶端創(chuàng)建一個(gè)客戶端創(chuàng)建一個(gè)Socket對(duì)象,包括連接的主機(jī)對(duì)象,包括連接的主機(jī)號(hào)和端口號(hào),指定使用的通信協(xié)議,通過發(fā)出號(hào)和端口號(hào),指定使用的通信協(xié)議,通過發(fā)出通信請(qǐng)求,試圖與服務(wù)器建立連接通信請(qǐng)求,試圖與服務(wù)器建立連接 n服務(wù)器監(jiān)聽到客戶端的請(qǐng)求,獲得一個(gè)和客戶服務(wù)器監(jiān)聽到客戶端的請(qǐng)求,獲得一個(gè)和客戶端端Socket相連接的相連接的Socket對(duì)象,與客戶端進(jìn)行對(duì)象,與客戶端進(jìn)行通信通信 理解連接的建立理解連接的建立u如果要建立連接,一臺(tái)機(jī)器必須如果要建立連接,一臺(tái)機(jī)器必須運(yùn)行一個(gè)進(jìn)程運(yùn)行一個(gè)進(jìn)程來等待連接來

22、等待連接,而另一臺(tái)機(jī)器必須試圖到達(dá)第一,而另一臺(tái)機(jī)器必須試圖到達(dá)第一臺(tái)機(jī)器。這和電話系統(tǒng)類似;一方必須發(fā)起呼臺(tái)機(jī)器。這和電話系統(tǒng)類似;一方必須發(fā)起呼叫,而另一方在此時(shí)必須等待電話呼叫叫,而另一方在此時(shí)必須等待電話呼叫u發(fā)起電話呼叫時(shí),必須知道所撥的電話號(hào)碼。發(fā)起電話呼叫時(shí),必須知道所撥的電話號(hào)碼。如果要發(fā)起網(wǎng)絡(luò)連接,你需要知道遠(yuǎn)程機(jī)器的如果要發(fā)起網(wǎng)絡(luò)連接,你需要知道遠(yuǎn)程機(jī)器的地址或名字。此外,每個(gè)網(wǎng)絡(luò)連接需要一個(gè)端地址或名字。此外,每個(gè)網(wǎng)絡(luò)連接需要一個(gè)端口號(hào),可以把它想象成電話的分機(jī)號(hào)碼。一旦口號(hào),可以把它想象成電話的分機(jī)號(hào)碼。一旦和一臺(tái)計(jì)算機(jī)建立連接,需要指明連接的目的和一臺(tái)計(jì)算機(jī)建立連接,

23、需要指明連接的目的。所以,就如同可以使用一個(gè)特定的分機(jī)號(hào)碼。所以,就如同可以使用一個(gè)特定的分機(jī)號(hào)碼來和財(cái)務(wù)部門對(duì)話那樣,可以使用一個(gè)特定的來和財(cái)務(wù)部門對(duì)話那樣,可以使用一個(gè)特定的端口號(hào)來和會(huì)計(jì)程序通信端口號(hào)來和會(huì)計(jì)程序通信u一個(gè)一個(gè)socket包括兩個(gè)流:一個(gè)輸入流和包括兩個(gè)流:一個(gè)輸入流和一個(gè)輸出流一個(gè)輸出流u建立網(wǎng)絡(luò)連接之后,使用與建立網(wǎng)絡(luò)連接之后,使用與socket相關(guān)相關(guān)聯(lián)的流和使用其他流是非常相似的聯(lián)的流和使用其他流是非常相似的u建立客戶端和服務(wù)器兩端相互通信的過建立客戶端和服務(wù)器兩端相互通信的過程是一樣的:程是一樣的:n打開套接字;打開套接字;n打開到套接字的輸入、輸出流;打開到套

24、接字的輸入、輸出流;n根據(jù)服務(wù)器協(xié)議讀寫套接字;根據(jù)服務(wù)器協(xié)議讀寫套接字;n關(guān)閉套接字,通信結(jié)束前的清理工作關(guān)閉套接字,通信結(jié)束前的清理工作u 盡管盡管TCP/IP協(xié)議的名稱中只有協(xié)議的名稱中只有TCP這個(gè)協(xié)議名,但這個(gè)協(xié)議名,但是在是在TCP/IP的傳輸層同時(shí)存在的傳輸層同時(shí)存在TCP和和UDP兩個(gè)協(xié)兩個(gè)協(xié)議議u TCP是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過TCP協(xié)議傳輸,得到的是一個(gè)順序的無差錯(cuò)的數(shù)據(jù)流協(xié)議傳輸,得到的是一個(gè)順序的無差錯(cuò)的數(shù)據(jù)流。發(fā)送方和接收方的成對(duì)的兩個(gè)。發(fā)送方和接收方的成對(duì)的兩個(gè)socket之間必須建之間必須建立連接,以便在立連

25、接,以便在TCP協(xié)議的基礎(chǔ)上進(jìn)行通信,當(dāng)一個(gè)協(xié)議的基礎(chǔ)上進(jìn)行通信,當(dāng)一個(gè)socket(通常都是(通常都是server socket)等待建立連接)等待建立連接時(shí),另一個(gè)時(shí),另一個(gè)socket可以要求進(jìn)行連接,一旦這兩個(gè)可以要求進(jìn)行連接,一旦這兩個(gè)socket連接起來,它們就可以進(jìn)行雙向數(shù)據(jù)傳輸,連接起來,它們就可以進(jìn)行雙向數(shù)據(jù)傳輸,雙方都可以進(jìn)行發(fā)送或接收操作雙方都可以進(jìn)行發(fā)送或接收操作u UDP是是User Datagram Protocol的簡(jiǎn)稱,是一的簡(jiǎn)稱,是一種無連接的協(xié)議,每個(gè)數(shù)據(jù)報(bào)都是一個(gè)獨(dú)立的信息,種無連接的協(xié)議,每個(gè)數(shù)據(jù)報(bào)都是一個(gè)獨(dú)立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)

26、上以任何可包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳往目的地,因此能否到達(dá)目的地,到達(dá)目能的路徑傳往目的地,因此能否到達(dá)目的地,到達(dá)目的地的時(shí)間以及內(nèi)容的正確性都是不能被保證的的地的時(shí)間以及內(nèi)容的正確性都是不能被保證的uTCP協(xié)議協(xié)議是在端點(diǎn)與端點(diǎn)之間建立是在端點(diǎn)與端點(diǎn)之間建立持續(xù)持續(xù)的連的連接而進(jìn)行通信。建立連接后接而進(jìn)行通信。建立連接后:n發(fā)送端發(fā)送端將發(fā)送的數(shù)據(jù)印記了將發(fā)送的數(shù)據(jù)印記了序列號(hào)序列號(hào)和和錯(cuò)誤錯(cuò)誤檢測(cè)代碼檢測(cè)代碼,并以,并以字節(jié)流字節(jié)流的方式發(fā)送出去的方式發(fā)送出去n接收端接收端則對(duì)數(shù)據(jù)進(jìn)行則對(duì)數(shù)據(jù)進(jìn)行錯(cuò)誤檢查錯(cuò)誤檢查并按序列順并按序列順序?qū)?shù)據(jù)整理好,數(shù)據(jù)在需要

27、時(shí)可以序?qū)?shù)據(jù)整理好,數(shù)據(jù)在需要時(shí)可以重新重新發(fā)送發(fā)送,因此整個(gè)字節(jié)流到達(dá)接收端時(shí)完好,因此整個(gè)字節(jié)流到達(dá)接收端時(shí)完好無缺無缺u這與兩個(gè)人打電話的情形是相似的這與兩個(gè)人打電話的情形是相似的11.3.2基于基于TCP的的Socket編程原理編程原理圖圖11-211-2基于基于TCPTCP的的SocketSocket編程原理編程原理11.3.3基于基于TCP的的Socket編程實(shí)現(xiàn)編程實(shí)現(xiàn)u 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的聊天程序?qū)崿F(xiàn)一個(gè)簡(jiǎn)單的聊天程序u 服務(wù)器端網(wǎng)絡(luò)程序的基本生命周期是:服務(wù)器端網(wǎng)絡(luò)程序的基本生命周期是:(1)利用)利用ServerSocket()構(gòu)造方法在指定端口號(hào)后創(chuàng)建一構(gòu)造方法在指定端口號(hào)

28、后創(chuàng)建一個(gè)新的個(gè)新的ServerSocket實(shí)例對(duì)象實(shí)例對(duì)象(2)ServerSocket利用它的利用它的accept()方法在指定端口監(jiān)方法在指定端口監(jiān)聽到客戶端連接。聽到客戶端連接。accept()方法一直處于方法一直處于阻塞狀態(tài)阻塞狀態(tài),直到,直到有客戶端試圖建立連接,有客戶端試圖建立連接,accept()方法返回連接客戶端和方法返回連接客戶端和服務(wù)器的服務(wù)器的Socket(3)調(diào)用)調(diào)用getInputStream()方法、方法、getOutputStream()方法得到與客戶端通信的輸入流和方法得到與客戶端通信的輸入流和輸出流輸出流(4)服務(wù)器和客戶端根據(jù)雙方都承認(rèn)的協(xié)議進(jìn)行交互,直

29、到)服務(wù)器和客戶端根據(jù)雙方都承認(rèn)的協(xié)議進(jìn)行交互,直到關(guān)閉連接時(shí)為止關(guān)閉連接時(shí)為止(5)服務(wù)器、客戶端或兩者均關(guān)閉連接)服務(wù)器、客戶端或兩者均關(guān)閉連接(6)服務(wù)器返回步驟)服務(wù)器返回步驟2,等待下一個(gè)連接到來,等待下一個(gè)連接到來uServerSocket的的3個(gè)的構(gòu)造方法:個(gè)的構(gòu)造方法: nServerSocket(int port)nServerSocket(int port,int queueLength)nServerSocket(int port,int backlog,InetAddress bindAddr)n例如,創(chuàng)建一個(gè)在例如,創(chuàng)建一個(gè)在80 端口使用的服務(wù)器端口使用的服務(wù)器套接

30、字:套接字:必須和客戶必須和客戶呼叫的端口呼叫的端口號(hào)相同號(hào)相同可能拋出可能拋出IOExceptiontry ServerSocket ss = new ServerSocket(80);catch (IOException e)System.err.println(e);u客戶端網(wǎng)絡(luò)程序的基本生命周期是:客戶端網(wǎng)絡(luò)程序的基本生命周期是:n利用構(gòu)造方法利用構(gòu)造方法Socket()創(chuàng)建一個(gè)創(chuàng)建一個(gè)套接字對(duì)象,與服務(wù)器的指定端口套接字對(duì)象,與服務(wù)器的指定端口號(hào)建立連接號(hào)建立連接n調(diào)用調(diào)用Socket類的類的getOutputStream()和和getInputStream()獲取輸出流獲取輸出流和

31、輸入流,使用和輸入流,使用InputStream()和和OutputStream()進(jìn)行網(wǎng)絡(luò)數(shù)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送和接收據(jù)的發(fā)送和接收n最后關(guān)閉通信套接字最后關(guān)閉通信套接字 uSocket類的構(gòu)造方法:類的構(gòu)造方法:nSocket(String,int)構(gòu)造一個(gè)連接指構(gòu)造一個(gè)連接指定主機(jī)、指定端口號(hào)定主機(jī)、指定端口號(hào)Socket的類的類nSocket(InetAddress,int)構(gòu)造一構(gòu)造一個(gè)連接指定網(wǎng)絡(luò)地址、指定端口號(hào)的個(gè)連接指定網(wǎng)絡(luò)地址、指定端口號(hào)的Socket類類u【例例11-4】、【例例11-5】、【例例11-6】、【例例11-7】和和【例例11-8】采用多線程采用多線程的網(wǎng)絡(luò)編程技

32、術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單聊天系統(tǒng)的網(wǎng)絡(luò)編程技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單聊天系統(tǒng)11.3.4基于基于UDP的的Socket編程原理編程原理u用戶數(shù)據(jù)報(bào)協(xié)議(用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是一種無連接的協(xié)議)是一種無連接的協(xié)議u數(shù)據(jù)報(bào)是以數(shù)據(jù)報(bào)是以UDP為通信協(xié)議的一種通信方式,它為通信協(xié)議的一種通信方式,它為兩臺(tái)計(jì)算機(jī)之間提供一種非可靠的無連接投遞為兩臺(tái)計(jì)算機(jī)之間提供一種非可靠的無連接投遞報(bào)文的通信服務(wù),由于這種通信方式不建立連接報(bào)文的通信服務(wù),由于這種通信方式不建立連接,所以不能保證所有的數(shù)據(jù)都能準(zhǔn)確、有序地送,所以不能保證所有的數(shù)據(jù)都能準(zhǔn)確、有序地送到目的地,用戶無法知道數(shù)據(jù)能否正確到達(dá)目的到目的地,用戶無法知道數(shù)據(jù)能

33、否正確到達(dá)目的地主機(jī),也不能確定數(shù)據(jù)到達(dá)目的地的順序是否地主機(jī),也不能確定數(shù)據(jù)到達(dá)目的地的順序是否和發(fā)送的順序相同和發(fā)送的順序相同u基于基于UDP的信息傳遞簡(jiǎn)單高效,但不提供可靠性的信息傳遞簡(jiǎn)單高效,但不提供可靠性保證,數(shù)據(jù)報(bào)服務(wù)一般用于傳送非關(guān)鍵性的數(shù)據(jù)保證,數(shù)據(jù)報(bào)服務(wù)一般用于傳送非關(guān)鍵性的數(shù)據(jù)或應(yīng)用于數(shù)據(jù)量大的環(huán)境下,如網(wǎng)絡(luò)游戲,視頻或應(yīng)用于數(shù)據(jù)量大的環(huán)境下,如網(wǎng)絡(luò)游戲,視頻會(huì)議等會(huì)議等uTCP協(xié)議和協(xié)議和UDP協(xié)議各有各的用處:協(xié)議各有各的用處:n當(dāng)對(duì)所傳輸?shù)臄?shù)據(jù)具有當(dāng)對(duì)所傳輸?shù)臄?shù)據(jù)具有時(shí)序性時(shí)序性和和可靠性可靠性等等要求時(shí),應(yīng)使用要求時(shí),應(yīng)使用TCP協(xié)議協(xié)議;n當(dāng)傳輸?shù)臄?shù)據(jù)比較簡(jiǎn)單、對(duì)

34、時(shí)序等無要求當(dāng)傳輸?shù)臄?shù)據(jù)比較簡(jiǎn)單、對(duì)時(shí)序等無要求時(shí),時(shí),UDP協(xié)議能發(fā)揮更好的作用,如協(xié)議能發(fā)揮更好的作用,如ping,發(fā)送時(shí)間數(shù)據(jù)等,發(fā)送時(shí)間數(shù)據(jù)等UDP編程編程uJava網(wǎng)絡(luò)網(wǎng)絡(luò)UDP編程中,在網(wǎng)絡(luò)上發(fā)送編程中,在網(wǎng)絡(luò)上發(fā)送和接收數(shù)據(jù)包需要使用和接收數(shù)據(jù)包需要使用類庫中類庫中提供的提供的兩個(gè)類兩個(gè)類 : nDatagramPacketn數(shù)據(jù)容器數(shù)據(jù)容器nDatagramSocketn發(fā)送或接收發(fā)送或接收 DatagramPacketu使用使用DatagramSocket類和類和DatagramPackte類來編寫發(fā)送端和類來編寫發(fā)送端和接收端程序就可以實(shí)現(xiàn)數(shù)據(jù)報(bào)的發(fā)送和接收端程序就可以實(shí)現(xiàn)

35、數(shù)據(jù)報(bào)的發(fā)送和接收。接收端和發(fā)送端需要?jiǎng)?chuàng)建并運(yùn)行接收。接收端和發(fā)送端需要?jiǎng)?chuàng)建并運(yùn)行各自的各自的Java語言程序語言程序DatagramSocketu用于發(fā)送或接收用于發(fā)送或接收DatagramPacket對(duì)象的對(duì)象的套接字套接字u構(gòu)造函數(shù)構(gòu)造函數(shù)nDatagramSocket()nDatagramSocket(int port)nDatagramSocket(int port,InetAddress laddr) u可用方法可用方法nvoid send(DatagramPacket d)nvoid receive(DatagramPacket p)nvoid close()構(gòu)造數(shù)據(jù)報(bào)套接構(gòu)造數(shù)

36、據(jù)報(bào)套接字并將其綁定到字并將其綁定到本地主機(jī)上任何本地主機(jī)上任何可用的端口及通可用的端口及通配符地址配符地址 構(gòu)造數(shù)據(jù)報(bào)套接構(gòu)造數(shù)據(jù)報(bào)套接字并將其綁定到字并將其綁定到本地主機(jī)指定端本地主機(jī)指定端口及通配符地址口及通配符地址 構(gòu)造數(shù)據(jù)報(bào)套接構(gòu)造數(shù)據(jù)報(bào)套接字并將其綁定到字并將其綁定到本地主機(jī)指定端本地主機(jī)指定端口及指定地址口及指定地址 u在在DatagramSocket上總是啟用上總是啟用UDP廣播發(fā)送。廣播發(fā)送。為了接收廣播包,應(yīng)將為了接收廣播包,應(yīng)將 DatagramSocket 綁定到綁定到通配符地址。在某些實(shí)現(xiàn)中,將通配符地址。在某些實(shí)現(xiàn)中,將 DatagramSocket 綁定到一個(gè)更加

37、具體的地址時(shí)綁定到一個(gè)更加具體的地址時(shí)廣播包也可以被接收。廣播包也可以被接收。u例如:例如:DatagramSocket s = new DatagramSocket(null);s.bind(new InetSocketAddress(8888); u等價(jià)于:等價(jià)于:DatagramSocket s = new DatagramSocket(8888); u兩種方式都創(chuàng)建能在兩種方式都創(chuàng)建能在8888端口上接收廣播的端口上接收廣播的DatagramSocket。 抽象類SocketAddress的子類 ,表示IP套接字地址DatagramPacketu起到數(shù)據(jù)容器作用的類起到數(shù)據(jù)容器作用的類

38、u構(gòu)造函數(shù)構(gòu)造函數(shù)nDatagramPacket(byteDatagramPacket(byte data, int size) data, int size)nDatagramPacket(byteDatagramPacket(byte data, int size, data, int size, InetAddress I, int port)InetAddress I, int port)圖圖11-10基于基于UDP的的Socket編程原理編程原理u接收端程序編寫(服務(wù)器端)步驟:接收端程序編寫(服務(wù)器端)步驟:(1 1)通過構(gòu)造方法)通過構(gòu)造方法DatagramSocket(int

39、DatagramSocket(int port)port)創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字,并綁定到指創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字,并綁定到指定端口上;定端口上;(2 2)調(diào)用)調(diào)用DatagramPacket(byte buf,int DatagramPacket(byte buf,int length)length),建立一個(gè)字節(jié)數(shù)組以接收,建立一個(gè)字節(jié)數(shù)組以接收UDPUDP包;包;(3 3)調(diào)用)調(diào)用DatagramSocketDatagramSocket類的類的receive()receive(),接,接收收UDPUDP包;包;(4 4)最后調(diào)用)最后調(diào)用DatagramSocketDatagramSoc

40、ket類類close()close()關(guān)閉關(guān)閉數(shù)據(jù)報(bào)套接字。數(shù)據(jù)報(bào)套接字。u包的消息包括:發(fā)送方、消息長(zhǎng)度、消息自身包的消息包括:發(fā)送方、消息長(zhǎng)度、消息自身u發(fā)送端程序編寫(客戶端)步驟:發(fā)送端程序編寫(客戶端)步驟:(1)通過構(gòu)造方法)通過構(gòu)造方法DatagramSocket()創(chuàng)建一創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字;個(gè)數(shù)據(jù)報(bào)套接字;(2)調(diào)用)調(diào)用DatagramPacket(byte buf,int length,InetAddress address,int port)建立建立要發(fā)送的要發(fā)送的UDP包;包;(3)調(diào)用)調(diào)用DatagramSocket類的類的send()方法,方法,發(fā)送發(fā)送UDP包

41、;包;(4)最后調(diào)用)最后調(diào)用DatagramSocket類類close()方法方法,關(guān)閉數(shù)據(jù)報(bào)套接字。,關(guān)閉數(shù)據(jù)報(bào)套接字。11.3.5基于基于UDP的的Socket編程實(shí)現(xiàn)編程實(shí)現(xiàn)u【例例11-9】和和【例例11-10】分別實(shí)現(xiàn)分別實(shí)現(xiàn)基于基于UDP的服務(wù)器端和客戶端的服務(wù)器端和客戶端n【例例11-9】UDPServer.javan【例例11-10】UDPClient.java11.3.6基于基于SSL的的Socket編程原理編程原理u用戶在網(wǎng)上商店購物,輸入信用卡信息,進(jìn)行用戶在網(wǎng)上商店購物,輸入信用卡信息,進(jìn)行網(wǎng)上支付交易時(shí),存在不安全因素:網(wǎng)上支付交易時(shí),存在不安全因素:n用戶的信用卡

42、信息在網(wǎng)絡(luò)上傳輸時(shí)有可能被用戶的信用卡信息在網(wǎng)絡(luò)上傳輸時(shí)有可能被他人截獲他人截獲n用戶發(fā)送的信息在網(wǎng)絡(luò)上傳輸時(shí)有可能被非用戶發(fā)送的信息在網(wǎng)絡(luò)上傳輸時(shí)有可能被非法篡改,數(shù)據(jù)完整性被破壞法篡改,數(shù)據(jù)完整性被破壞n用戶正在訪問的用戶正在訪問的Web站點(diǎn)是個(gè)非法站點(diǎn),站點(diǎn)是個(gè)非法站點(diǎn),專門從事網(wǎng)上欺詐活動(dòng),如騙取客戶資金專門從事網(wǎng)上欺詐活動(dòng),如騙取客戶資金uSSL采用加密技術(shù)來實(shí)現(xiàn)安全通信,保證通信采用加密技術(shù)來實(shí)現(xiàn)安全通信,保證通信數(shù)據(jù)的保密性和完整性,保證通信雙方可以驗(yàn)數(shù)據(jù)的保密性和完整性,保證通信雙方可以驗(yàn)證對(duì)方的身份證對(duì)方的身份u1994年,網(wǎng)景公司推出年,網(wǎng)景公司推出SSL(Secure S

43、ockets Layer)安全網(wǎng)絡(luò)通信協(xié)議)安全網(wǎng)絡(luò)通信協(xié)議u采用多種密鑰對(duì)進(jìn)行通信的數(shù)據(jù)進(jìn)行加密,提供采用多種密鑰對(duì)進(jìn)行通信的數(shù)據(jù)進(jìn)行加密,提供網(wǎng)絡(luò)通信的保密性和可靠性網(wǎng)絡(luò)通信的保密性和可靠性u(píng)包括:包括:nSSL記錄協(xié)議:規(guī)定如何將要傳輸?shù)臄?shù)據(jù)封裝記錄協(xié)議:規(guī)定如何將要傳輸?shù)臄?shù)據(jù)封裝在記錄中,即規(guī)定記錄的格式、記錄的加密方在記錄中,即規(guī)定記錄的格式、記錄的加密方式、記錄的壓縮和解壓縮方式等。每個(gè)記錄的式、記錄的壓縮和解壓縮方式等。每個(gè)記錄的最大長(zhǎng)度是最大長(zhǎng)度是32767字節(jié)字節(jié)nSSL握手協(xié)議:規(guī)定了在服務(wù)器端和客戶端之握手協(xié)議:規(guī)定了在服務(wù)器端和客戶端之間進(jìn)行通信的步驟、選擇數(shù)據(jù)加密方式

44、的步驟間進(jìn)行通信的步驟、選擇數(shù)據(jù)加密方式的步驟以及進(jìn)行數(shù)據(jù)通信的步驟等以及進(jìn)行數(shù)據(jù)通信的步驟等u加密通信技術(shù)的原理:加密通信技術(shù)的原理:n數(shù)據(jù)從一端發(fā)送到另一端時(shí),發(fā)送者先對(duì)數(shù)據(jù)從一端發(fā)送到另一端時(shí),發(fā)送者先對(duì)數(shù)據(jù)加密,然后在發(fā)給接收者。在網(wǎng)絡(luò)上數(shù)據(jù)加密,然后在發(fā)給接收者。在網(wǎng)絡(luò)上傳輸?shù)氖羌用艿臄?shù)據(jù)傳輸?shù)氖羌用艿臄?shù)據(jù)n如果有人在網(wǎng)絡(luò)上非法截獲了這批數(shù)據(jù),如果有人在網(wǎng)絡(luò)上非法截獲了這批數(shù)據(jù),由于沒有解密的密鑰,就無法獲得真正的由于沒有解密的密鑰,就無法獲得真正的原始數(shù)據(jù)原始數(shù)據(jù)n接收者收到加密的數(shù)據(jù)后,先對(duì)數(shù)據(jù)解密接收者收到加密的數(shù)據(jù)后,先對(duì)數(shù)據(jù)解密,然后再處理,然后再處理u除了對(duì)數(shù)據(jù)加密通通信

45、,除了對(duì)數(shù)據(jù)加密通通信,SSL還采用了身份還采用了身份認(rèn)證機(jī)制,確保通信雙方都可以驗(yàn)證對(duì)方的認(rèn)證機(jī)制,確保通信雙方都可以驗(yàn)證對(duì)方的真實(shí)身份真實(shí)身份u當(dāng)客戶通過安全的鏈接和服務(wù)器通信時(shí),服當(dāng)客戶通過安全的鏈接和服務(wù)器通信時(shí),服務(wù)器會(huì)現(xiàn)象客戶出示它的安全證書,這個(gè)證務(wù)器會(huì)現(xiàn)象客戶出示它的安全證書,這個(gè)證書聲明該服務(wù)器是安全的而且的確是這個(gè)服書聲明該服務(wù)器是安全的而且的確是這個(gè)服務(wù)器務(wù)器u每個(gè)證書在全世界范圍內(nèi)是唯一的,其它非每個(gè)證書在全世界范圍內(nèi)是唯一的,其它非法服務(wù)器無法假冒原始服務(wù)器的身份法服務(wù)器無法假冒原始服務(wù)器的身份u可以把安全證書比作電子身份證可以把安全證書比作電子身份證u安全證書既包含了用于加密數(shù)據(jù)的密鑰,又安全證書既包含了用于加密數(shù)據(jù)的密鑰,又包含了證實(shí)身份的數(shù)字簽名包含了證實(shí)身份的數(shù)字簽名u安全證書采用公鑰加密技術(shù):用一對(duì)非對(duì)稱安全證書采用公鑰加密技術(shù):用一對(duì)非對(duì)稱的密鑰進(jìn)行加密或解密。每一對(duì)密鑰由公鑰的密鑰進(jìn)行加密或解密。每一對(duì)密鑰由公鑰和私鑰組成。公鑰被廣泛發(fā)布,私鑰是隱密和私鑰組成。公鑰被廣泛發(fā)布,私鑰是隱密的,不公開。用公鑰加密的數(shù)據(jù)只能被私鑰的,不公開。用公

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論