課件16網(wǎng)絡(luò)編程16java_第1頁
課件16網(wǎng)絡(luò)編程16java_第2頁
課件16網(wǎng)絡(luò)編程16java_第3頁
課件16網(wǎng)絡(luò)編程16java_第4頁
課件16網(wǎng)絡(luò)編程16java_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)基礎(chǔ)Internet的形成和發(fā)展網(wǎng)絡(luò)通信協(xié)議網(wǎng)絡(luò)通信結(jié)構(gòu)TCP/IPSocketJava Socket編程網(wǎng)絡(luò)基礎(chǔ)知識(shí)網(wǎng)絡(luò):把的外部設(shè)備用通信線路互連成一個(gè)規(guī)模宏大、功能強(qiáng)大的網(wǎng)絡(luò)系統(tǒng),從而使眾多的計(jì)算機(jī)可以方便地互相傳遞信息,共享硬件、軟件、數(shù)據(jù)信息等資源分布在不同地理區(qū)域的計(jì)算機(jī)與專門。計(jì)算機(jī)的聯(lián)網(wǎng)可以實(shí)現(xiàn):使用遠(yuǎn)程資源共享信息、程序和數(shù)據(jù)分布處理計(jì)算機(jī)網(wǎng)絡(luò)分類按照網(wǎng)絡(luò)規(guī)模和范圍可以簡單劃分為:局域網(wǎng)(LAN,Local Area Network)都市網(wǎng)(MAN,Metropolis Area Network)廣域網(wǎng)(WAN,Wide Area Network)按照網(wǎng)絡(luò)

2、拓?fù)浣Y(jié)構(gòu)可以分為:星型網(wǎng)絡(luò)、總線網(wǎng)絡(luò)、環(huán)線網(wǎng)絡(luò)、樹型網(wǎng)絡(luò)、星型環(huán)線網(wǎng)絡(luò)等按照傳輸介質(zhì)劃分:雙絞線、同軸電纜、光導(dǎo)纖維、視線介質(zhì)等網(wǎng)絡(luò)的幾種工作模式專用服務(wù)器結(jié)構(gòu)(Server-Based) 又稱為“工作站文件服務(wù)器”結(jié)構(gòu),由若干臺(tái)微機(jī)工作站與一臺(tái)或多臺(tái)文件服務(wù)器通過通信線路連接起來組成工作站存取服務(wù)器文件,共享存儲(chǔ)設(shè)備。 例如:POS機(jī)客戶機(jī)/服務(wù)器模式(clientserver) 其中一臺(tái)或幾臺(tái)較大的計(jì)算機(jī)集中進(jìn)行共享數(shù)據(jù)庫的管理和存取,稱為服務(wù)器,而將其它的應(yīng)用處理工作分散到網(wǎng)絡(luò)中其它微機(jī)上去做,構(gòu)成分布式的處理系統(tǒng)。 對等式網(wǎng)絡(luò):(Peer-to-Peer)在對等式網(wǎng)絡(luò)結(jié)構(gòu)中,沒有專用服

3、務(wù)器 每一個(gè)工作站既可以起客戶機(jī)作用也可以起服務(wù)器作用。 Internet基礎(chǔ)Internet的形成和發(fā)展:第一階段(19691983):1969年,美國ARPANET誕生,用于將幾個(gè)軍事及研究用的主機(jī)聯(lián)系起來。1983年,TCP/IP應(yīng)用到ARPANET中,使得internet得以迅速發(fā)展。以ARPANET 為中心,組成新的互聯(lián)網(wǎng)(internet),稱為Internet。第二階段(19831994):用于教育和科研領(lǐng)域的NSFNET(National Science Foundation Net)形成第三階段(1994Now):Internet的商業(yè)化運(yùn)作。網(wǎng)絡(luò)通信協(xié)議/接口網(wǎng)絡(luò)通信協(xié)議

4、計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)通信必須有一些約定即通信協(xié)議,對速率、傳輸代碼、代碼結(jié)構(gòu)、傳輸控制步驟、出錯(cuò)控制等制定標(biāo)準(zhǔn)。 網(wǎng)絡(luò)通信結(jié)構(gòu)為了使兩個(gè)結(jié)點(diǎn)之間能進(jìn)行對話,必須在它們之間建立通信工具(即接口),使彼此之間 能進(jìn)行信息交換。接口包括兩部分:硬件裝置:實(shí)現(xiàn)結(jié)點(diǎn)之間的信息傳送 軟件裝置:規(guī)定雙方進(jìn)行通信的約定協(xié)議OSI的分層思想OSI:開放系統(tǒng)互連(Open System Interconnection),采用分層的結(jié)構(gòu)化技術(shù)。分層的理由:將網(wǎng)絡(luò)簡化模塊化的設(shè)計(jì)網(wǎng)絡(luò)OSI參考模型(OSI/RM,Open System Interconnection/Reference Model)共分為7層,最高層為用

5、戶層,最底層為物理層。OSI的七層模型表 示應(yīng) 用會(huì) 話網(wǎng) 絡(luò)傳 輸數(shù)據(jù)鏈路物 理TCP協(xié)議TCP協(xié)議為一種可靠的端對端協(xié)議:重發(fā)一切沒有收到的數(shù)據(jù),進(jìn)行數(shù)據(jù)內(nèi)容準(zhǔn)確性檢查并保證分組的正確順序。TCP協(xié)議位于OSI參考模型的傳輸層表 示應(yīng) 用會(huì) 話網(wǎng) 絡(luò)傳 輸數(shù)據(jù)鏈路物 理TCP網(wǎng)絡(luò)通訊協(xié)議在網(wǎng)絡(luò)中的每臺(tái)就算機(jī)都是一個(gè)節(jié)點(diǎn).對于這些節(jié)點(diǎn)之間的交流,必須遵循有關(guān)節(jié)點(diǎn)之間都應(yīng)該遵守的規(guī)則,這些所謂的規(guī)則就是“協(xié)議”就算機(jī)網(wǎng)絡(luò)中要實(shí)現(xiàn)通訊必須有一些約定,就是通訊協(xié)議,對速率,傳輸代碼,代碼結(jié)構(gòu),傳輸控制步驟,出錯(cuò)控制等指定標(biāo)準(zhǔn)TCP協(xié)議TCP:傳輸控制協(xié)議.TCP協(xié)議是一種可靠的端對端協(xié)議.當(dāng)一臺(tái)就

6、算機(jī)需要和另外一條就算機(jī)通訊的時(shí)候,TCP協(xié)議會(huì)讓他們之間建立一個(gè)連接,然后發(fā)送和接受數(shù)據(jù),最后終止連接TCP協(xié)議利用重發(fā)技術(shù),相引用程序提供可靠的通信連接.TCP會(huì)重發(fā)一切沒有受到的數(shù)據(jù),在接受數(shù)據(jù)時(shí)要進(jìn)行確認(rèn)并對數(shù)據(jù)進(jìn)行排序,保證數(shù)據(jù)的完整性與正確性IP協(xié)議IP協(xié)議是網(wǎng)絡(luò)上的計(jì)算機(jī)進(jìn)行連接的基礎(chǔ)IP協(xié)議是不可靠的:無論傳送正確與否都不進(jìn)行檢驗(yàn)、不回送確認(rèn)、不保證分組的正確順序IP協(xié)議位于OSI參考模型的網(wǎng)絡(luò)層表 示應(yīng) 用會(huì) 話網(wǎng) 絡(luò)傳 輸數(shù)據(jù)鏈路物 理IPTCP/IP協(xié)議TCP/IP:是Internet上不同系統(tǒng)之間互聯(lián)的一組協(xié)議。它為分散和不同類型的硬件提供了一個(gè)通用的編程接口。TCP/

7、IP 協(xié)議使Internet盡可能成為一個(gè)分散、無序的網(wǎng)絡(luò)。TCP/IP通常被看成一個(gè)4層模型:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層以及數(shù)據(jù)鏈路層+物理層。OSI和TCP/IP的分層對應(yīng)OSI 參考模型表 示應(yīng) 用會(huì) 話網(wǎng) 絡(luò)傳 輸數(shù)據(jù)鏈路物 理應(yīng) 用網(wǎng) 絡(luò)傳 輸物理+數(shù)據(jù)鏈路TCP/IP 參考模型數(shù)據(jù)的封裝和拆封位于TCP/IP各個(gè)層的數(shù)據(jù)通常用一個(gè)公共的機(jī)制來封裝:定義描述元信息和數(shù)據(jù)報(bào)的部分真實(shí)信息的報(bào)頭的協(xié)議,這些元信息可以是數(shù)據(jù)源、目的地和其他的附加屬性。來自于高層的協(xié)議封裝在較低層的數(shù)據(jù)報(bào)中,當(dāng)信息在不同的層之間傳遞時(shí),都會(huì)在每一層重新構(gòu)建一次。IP地址的分配IP地址的定義為了實(shí)現(xiàn)Interne

8、t上不同計(jì)算機(jī)之間的通信,每臺(tái)計(jì)算機(jī)都必須有一個(gè)不與其它計(jì)算機(jī)重復(fù)的地址-IP地址IP地址是數(shù)字型的,32位(32bit),由4個(gè) 8位的二進(jìn)制數(shù)組成,每8位之間用圓點(diǎn)隔開IP地址由網(wǎng)絡(luò)標(biāo)識(shí)(network id)和主機(jī)標(biāo)識(shí) (host id)組成,他們都包含在32位的二進(jìn)制數(shù)據(jù)中IP地址被分成了A、B、C、D、E五類,每個(gè)類別的網(wǎng)絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí)各有規(guī)則。A類地址1Bits:0NNNNNNNHostHostHost891617242532Range (1-126)Class A: 用于大型的網(wǎng)絡(luò).A類地址中的最前面的一段用來表示“網(wǎng)絡(luò) 標(biāo)識(shí)”,并且該段的第一位必須是0.其余的3段標(biāo)識(shí)主機(jī)標(biāo)識(shí)

9、 A類地址的表示范圍為:55B類地址110NNNNNNNetworkHostHost891617242532Range (128-191)Bits:Class B: 用于中型的網(wǎng)絡(luò).B類地址中的最前面的兩段用來表示“網(wǎng)絡(luò) 標(biāo)識(shí)”,并且第一段8位二進(jìn)制數(shù)的前兩位必須是10. 后面的2 段標(biāo)識(shí)主機(jī)標(biāo)識(shí) B類地址的表示范圍為:191.255.255C類地址1110NNNNNNetworkNetworkHost891617242532Range (192-223)Bits:Class C: 用于小型的網(wǎng)絡(luò).C類地址中的最前面的三段用來表示“網(wǎng)絡(luò) 標(biāo)識(shí)”,并且第一段8位二進(jìn)制數(shù)的前三位必須是110. 后

10、面的 一段標(biāo)識(shí)主機(jī)標(biāo)識(shí) C類地址的表示范圍為:223.255.255子網(wǎng)掩碼子網(wǎng)掩碼也是一個(gè)32位二進(jìn)制數(shù)的地址,它用于屏蔽一部分IP地址,由此來區(qū)分網(wǎng)絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí).網(wǎng)絡(luò)標(biāo)識(shí)地址部分對應(yīng)的位置設(shè)置為1,主機(jī)標(biāo)識(shí)部分對應(yīng)的位置設(shè)置為0指定子網(wǎng)掩碼安裝如下的規(guī)則在實(shí)現(xiàn) A類地址子網(wǎng)掩碼: B類地址子網(wǎng)掩碼: C類地址子網(wǎng)掩碼: 端口(port)計(jì)算機(jī)與外界交流的出入口是一種抽象的軟件結(jié)構(gòu),包括一些數(shù)據(jù)結(jié)構(gòu)和I/O(基本輸入/輸出)緩沖區(qū)端口號(hào)可以從0到65535,通常將它分為三類:公認(rèn)端口(Well Known Ports):從0到1023,它們緊密綁定(Binding)一些服務(wù)注冊端口(Re

11、gistered Ports):從1024到49151。它們松散地綁定一些服務(wù)動(dòng)態(tài)和/或私有端口(Dynamic and/or Private Ports):從49152到65535。理論上,不應(yīng)為服務(wù)分配這些端口在使用端口時(shí),遵循如下的規(guī)則 1. 低于255:用于公認(rèn)端口 2. 2551023 分配給公司用于商業(yè)的應(yīng)用 3. 高于1023:沒有限制 所以,如果建立自己的應(yīng)用,都使用高于1023的端口 常見 TCP 端口和對應(yīng)服務(wù)端口對應(yīng)服務(wù) 7 Echo服務(wù)器21Ftp23telnet25SMTP79Finger80HTTPJava中的“ping”在命令行中,可以通過“ping host”的

12、方法得到指定主機(jī)的IP地址通過 中的InetAddress類,可以得到指定主機(jī)的IP地址(案例13-1)import .*;public class InetAddressTest public static void main(String args) try InetAddress ia = InetAddress.getLocalHost();String host = ia.getHostAddress();String hostname = ia.getHostName();System.out.println(ia + + hostname); catch (UnknownHost

13、Exception e) e.printStackTrace();Socket套接字(Socket ):計(jì)算機(jī)之間相互通訊的一種方式,表示一個(gè)系統(tǒng)的IP地址和端口號(hào)的結(jié)合。Socket大致位于OSI的會(huì)話層.作為會(huì)話層的一部分,Socket隱藏了數(shù)據(jù)流傳輸中的具體的過程.兩個(gè)通訊的Socket會(huì)建立一個(gè)連接通道,然后在這個(gè)通道上通訊TCP/IP連接的一個(gè)端點(diǎn)用來處理兩個(gè)流對象創(chuàng)建TCP Socket需要的四個(gè)信息:本地系統(tǒng)的IP本地應(yīng)用程序使用的TCP端口號(hào)遠(yuǎn)程系統(tǒng)的IP遠(yuǎn)程應(yīng)用程序相應(yīng)的TCP端口號(hào)Java Socket編程 .Socket兩個(gè)類用于建立一個(gè)雙邊的通信。ServerSocke

14、t等待來自客戶端的連接,而Socket 連接到一個(gè)服務(wù)器端。ServerSocket類ServerSocket類用于偵聽一個(gè)客戶端的Socket連接,如果沒有連接,它將一直等待。ServerSocket構(gòu)造器:ServerSocket(int port):用指定的端口port來創(chuàng)建一個(gè)偵聽SocketServerSocket(int port,int backlog):加上一個(gè)用來改變連接隊(duì)列長度的參數(shù)backlog。ServerSocket(int port,int backlog,InetAddress localAddr):在機(jī)器存在多個(gè) IP地址的情況下,允許通過localAddr這個(gè)

15、參數(shù)來指定偵聽的IP地址。ServerSocket方法:Socket accept()close()Socket類Socket類構(gòu)造器Socket()Socket(InetAddress address, int port)Socket(InetAddress address, int port, InetAddress localAddr, int localPort) Socket(String host, int port)protected Socket(SocketImpl impl) Socket(String host, int port, InetAddress localAd

16、dr, int localPort) Socket方法:getInputStream()getOutputStream()close()Socket通信模型Server端ServerSocket s (port #)s.accept()/等待連接SocketOutputStreamInputStreamsocket.close()Client端Socket (host, port #)(試圖連接)OutputStreamInputStreamsocket.close()Socket通信例子(案例13-2)ServerSocket server = new ServerSocket(1234);Socket sk = server.accept();BufferedReader br = new BufferedReader(new InputStreamReader(sk.getInputStream();System.out.println(br.readLine();br.close();server.close();Socket通信例子(con.)Socket client;PrintStream ps;tryclient = new Socket(localhost,1234);Sys

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論