第 9 章 Java網(wǎng)絡(luò)_第1頁
第 9 章 Java網(wǎng)絡(luò)_第2頁
第 9 章 Java網(wǎng)絡(luò)_第3頁
第 9 章 Java網(wǎng)絡(luò)_第4頁
第 9 章 Java網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非1第第9章章 網(wǎng)絡(luò)通信網(wǎng)絡(luò)通信Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非2主要內(nèi)容主要內(nèi)容9.1網(wǎng)絡(luò)編程的基礎(chǔ)知識9.2 基于TCP協(xié)議網(wǎng)絡(luò)程序設(shè)計9.3 基于UDP協(xié)議網(wǎng)絡(luò)程序設(shè)計9.4 JApplet編程9.5基于分布模式的云計算系統(tǒng)Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非39.1網(wǎng)絡(luò)編程的基礎(chǔ)知識網(wǎng)絡(luò)編程的基礎(chǔ)知識9.1.1IP地址和端口號地址

2、和端口號9.1.2套接字套接字Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非49.1.1IP地址和端口號地址和端口號1、IP地址地址 網(wǎng)絡(luò)中的每臺計算機都必須有一個惟一的IP地址作為標(biāo)識,這個數(shù)通常寫作一組由“.”號分隔的十進制數(shù)。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非59.1.1IP地址和端口號地址和端口號在J包中,IP地址由一個稱作InetAddress的特殊的類來描述。這個類提供了三個用來獲得一個InetAddress類的實例的靜態(tài)方法。這三個方法是:g

3、etLocalHost( )返回一個本地主機的IP地址。getByName(String host )返回對應(yīng)于指定主機的IP地址。getAllByName(String host )對于某個主機有多個IP地址(多宿主機)可用于得到一個IP地址數(shù)組。此外,對一個InetAddress的實例可以使用:getAddress( )獲得一個用字節(jié)數(shù)組形式表示的IP地址。getHostName( )作反向查詢,獲得對應(yīng)于某個IP地址的主機名。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非6【例【例9-1】通過域名查找】通過域名查找IP地址。

4、地址。核心語句:try InetAddress zsm_address; zsm_address =InetAddress.getByName(); str=思維論壇的IP地址為:+zsm_address.toString(); catch(UnknownHostException e) str=無法找到思維論壇; Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非7【例【例9-2】查找本機】查找本機IP地址。地址。 核心語句: try InetAddress host_address; host_address=InetAddres

5、s.getLocalHost(); str=本機的IP地址為:+host_address.toString(); catch(UnknownHostException e) str=本機沒有安裝網(wǎng)卡,無法找到IP。; Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非89.1.1IP地址和端口號地址和端口號2、端口 我們用“端口號”來標(biāo)識正在計算機上運行的進程(程序)。每個被發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)包也都包含有“端口號”,用于將該數(shù)據(jù)幀交給具有相同端口號的應(yīng)用程序來處理。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大

6、學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非99.1.1IP地址和端口號地址和端口號2、端口 端口號是一個整數(shù),其取值范圍為065535之間。由于同一臺計算機上不能同時運行兩個有相同端口號的進程。通常01023間的端口號作為保留端口號,用于一些網(wǎng)絡(luò)系統(tǒng)服務(wù)和應(yīng)用,用戶的普通網(wǎng)絡(luò)應(yīng)用程序應(yīng)該使用1024以后的端口號,從而避免端口號沖突。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非109.1.1IP地址和端口號地址和端口號3、TCP與UDP協(xié)議 在網(wǎng)絡(luò)中,有兩個常用的協(xié)議,它們是“傳輸控制協(xié)議”(Transmission Control P

7、rotocol,簡稱TCP)和“用戶數(shù)據(jù)報協(xié)議”(User Datagram Protocol,簡稱:UDP)。 TCP是面向連接的通信協(xié)議,TCP提供兩臺計算機之間的可靠無差錯的數(shù)據(jù)傳輸。 UDP是無連接通信協(xié)議,UDP不保證可靠數(shù)據(jù)的傳輸。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非119.1.2套接字套接字1、什么是套接字 在TCP/IP通信協(xié)議中,套接字(Socket)就是IP地址與端口號的組合。 如圖所示,IP地址193.14.26.7與端口號13組成一個套接字。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思

8、張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非129.1.2套接字套接字1、什么是套接字網(wǎng)絡(luò)通信,準(zhǔn)確地說,不能僅說成是兩臺計算機之間在通信,而是兩臺計算機上執(zhí)行的網(wǎng)絡(luò)應(yīng)用程序(進程)之間在收發(fā)數(shù)據(jù)。當(dāng)兩個網(wǎng)絡(luò)程序需要通信時,它們可以通過使用Socket類建立套接字連接。我們把呼叫方稱為“客戶端”,負(fù)責(zé)監(jiān)聽的一方稱為“服務(wù)器端”。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非139.1.2套接字套接字2、客戶端建立套接字Socket對象在客戶端使用socket類,建立向指定服務(wù)器IP和端口號連接的套接字,其構(gòu)造方法是:

9、 Socket(host_IP, prot); 其中host_IP是服務(wù)器的IP地址,prot是一個端口號。Socket主要方法有: getInputStream( ):獲得一個輸入流,讀取從網(wǎng)絡(luò)線路上傳送來的數(shù)據(jù)信息。 getOutputStream( ):獲得一個輸出流,用這個輸出流將數(shù)據(jù)信息寫入到網(wǎng)絡(luò)“線路”上。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非149.1.2套接字套接字3、服務(wù)器端建立套接字Socket對象 在服務(wù)器端用ServerSocket類創(chuàng)建服務(wù)器Socket,ServerSocket類的構(gòu)造方法為:

10、 ServerSocket(int port);創(chuàng)建ServerSocket實例是不需要指定IP地址的,ServerSocket總是處于監(jiān)聽本機端口的狀態(tài)。ServerSocket類的主要方法: Socket accept(); 該方法用于在服務(wù)器端的指定端口監(jiān)聽客戶機發(fā)起的連接請求,并與之連接,其返回值為Socket對象。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非159.2 基于基于TCP協(xié)議網(wǎng)絡(luò)程序設(shè)計協(xié)議網(wǎng)絡(luò)程序設(shè)計9.2.1客戶機/服務(wù)器模式9.2.2同時服務(wù)于多個客戶的解決方案Java語言程序設(shè)計語言程序設(shè)計(第第

11、2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非169.2.1客戶機客戶機/服務(wù)器模式服務(wù)器模式 利用利用Socket方式進行數(shù)據(jù)通信與傳輸,大致有如下步驟:方式進行數(shù)據(jù)通信與傳輸,大致有如下步驟:(1)創(chuàng)建服務(wù)器端ServerSocket,設(shè)置建立連接的端口號。(2)創(chuàng)建客戶端Socket對象,設(shè)置綁定的主機名稱或IP地址,指定連接端口號。(3)客戶機Socket發(fā)起連接請求。(4)建立連接。(5)取得InputStream和OutputStream。(6)利用InputStream和OutputStream進行數(shù)據(jù)傳輸。(7)關(guān)閉Socket和ServerSocke

12、t。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非17Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非18【例【例9-3】遠程數(shù)據(jù)通信示例,本例由客戶端程】遠程數(shù)據(jù)通信示例,本例由客戶端程序和服務(wù)器程序兩部分組成。序和服務(wù)器程序兩部分組成。 (1)客戶端程序(2)服務(wù)器端程序Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非199.2.2同時服務(wù)于多個客戶的解決方案同時服務(wù)于多個客戶的解決方案1、啟動多個服務(wù)

13、程序、啟動多個服務(wù)程序 我們可以在服務(wù)器端啟動多個服務(wù)程序,等待客戶機的連接請求,每個服務(wù)程序處理一個客戶機數(shù)據(jù),它們只是監(jiān)聽的端口號不同。顯然,這個方案耗用資源太多。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非209.2.2同時服務(wù)于多個客戶的解決方案同時服務(wù)于多個客戶的解決方案2、應(yīng)用多線程、應(yīng)用多線程 在服務(wù)程序中應(yīng)用多線程技術(shù),不同的線程為不同的客戶服務(wù)。主線程負(fù)責(zé)等待客戶機的連接請求,各個線程負(fù)責(zé)網(wǎng)絡(luò)連接,接收客戶發(fā)送來的信息。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工

14、業(yè)大學(xué)計算機系代亞非21【例9-4】服務(wù)程序應(yīng)用多線程技術(shù)同時處理多個客戶機的連接請求。 (1)客戶端程序 (2)服務(wù)器端程序 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非229.3 基于基于UDP協(xié)議網(wǎng)絡(luò)程序設(shè)計協(xié)議網(wǎng)絡(luò)程序設(shè)計9.3.1基于UDP協(xié)議的數(shù)據(jù)報套接字9.3.2數(shù)據(jù)報的程序設(shè)計過程9.3.3廣播數(shù)據(jù)報套接字Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非239.3.1基于基于UDP協(xié)議的數(shù)據(jù)報套接字協(xié)議的數(shù)據(jù)報套接字 TCP協(xié)議通過socket套接字建

15、立一條虛電路。TCP協(xié)議的socketserverclientDatagram數(shù)據(jù)報數(shù)據(jù)報serverclientUDP數(shù)據(jù)報的每個數(shù)據(jù)包要包含目的地址和端口號.Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非24在UDP中,要使用二個類: (1) DatagramSocket 類發(fā)送時,用 send( )方法發(fā)送數(shù)據(jù);接收時,用 receive( )方法接收數(shù)據(jù)。(2) DatagramPacket 類 用于打包或拆包 發(fā)送時打包: 包由數(shù)據(jù)、接收地址、端口號組成; 接收時拆包: 取出包中的數(shù)據(jù)、接收地址、端口號。Java語言程序

16、設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非259.3.2數(shù)據(jù)報的程序設(shè)計過程數(shù)據(jù)報的程序設(shè)計過程1、服務(wù)器端發(fā)出報文的步驟、服務(wù)器端發(fā)出報文的步驟 (1)定義數(shù)據(jù)成員。 DatagramSocket socket; DatagramPacket packet; InetAddress address;(用來存放接收方的地址) int port; (用來存放接收方的端口號)(2)創(chuàng)建數(shù)據(jù)報文Socket對象。 try socket = new DatagramSocket(1111); catch(.SocketException e) soc

17、ket 綁定到一個本地的可用端口,等待接收客戶的請求。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非269.3.2數(shù)據(jù)報的程序設(shè)計過程數(shù)據(jù)報的程序設(shè)計過程1、服務(wù)器端發(fā)出報文的步驟、服務(wù)器端發(fā)出報文的步驟 (3)分配并填寫數(shù)據(jù)緩沖區(qū)(一個字節(jié)類型的數(shù)組)。 byte Buf = new byte256; 存放從客戶端接收的請求信息.(4)創(chuàng)建一個DatagramPacket。 packet = new DatagramPacket(Buf數(shù)組, 256字節(jié)長度); 用來從socket接收數(shù)據(jù),它只有兩個參數(shù)。(5)服務(wù)器阻塞。 s

18、ocket.receive(packet); 在客戶的請求報道來之前一直等待。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非279.3.2數(shù)據(jù)報的程序設(shè)計過程數(shù)據(jù)報的程序設(shè)計過程1、服務(wù)器端發(fā)出報文的步驟、服務(wù)器端發(fā)出報文的步驟 (6)從到來的包中得到地址和端口號。 InetAddress address = packet.getAddress(); int port = packet.getPort();(7)將數(shù)據(jù)送入緩沖區(qū)。來自文件,或鍵盤輸入。 (8)建立報文包,用來從socket上發(fā)送信息。 Packet = new D

19、atagramPacket(buf, buf.length, address, port);(9)發(fā)送數(shù)據(jù)包。socket.send(packet);(10)關(guān)閉socket。 socket.close();Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非289.3.2數(shù)據(jù)報的程序設(shè)計過程數(shù)據(jù)報的程序設(shè)計過程2、客戶端接收包的步驟、客戶端接收包的步驟 (1)定義數(shù)據(jù)成員。 int port; InetAddress address; DatagramSocket socket; DatagramPacket packet; byte

20、 sendBuf = new byte256;(2)建立socket。 socket = new DatagramSocket();(3)向服務(wù)器發(fā)出請求報文。 address = InetAddress.getByName(args0); port = parseInt(args1); packet = new DatagramPacket(sendBuf, 256, address, port); socket.send(packet);Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非299.3.2數(shù)據(jù)報的程序設(shè)計過程數(shù)據(jù)報的程

21、序設(shè)計過程2、客戶端接收包的步驟、客戶端接收包的步驟 (4)客戶機等待應(yīng)答。 packet = new DatagramPacket(sendBuf, 256); socket.receive(packet);(如果沒有到就一直等待,因此程序要設(shè)置時間限度) (5)處理接收到的數(shù)據(jù)。 String received = new String(packet.getData(), 0, packet.getLength(); System.out.println(received); Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非30

22、數(shù)據(jù)報工作過程建立數(shù)據(jù)報建立數(shù)據(jù)報socket();建立一個報文包建立一個報文包packet等待請求報文等待請求報文建立數(shù)據(jù)報建立數(shù)據(jù)報socket建立一個請求包建立一個請求包發(fā)出請求發(fā)出請求獲得對方地址獲得對方地址構(gòu)成信息包構(gòu)成信息包發(fā)送出去發(fā)送出去創(chuàng)建接收包創(chuàng)建接收包等待接收等待接收J(rèn)ava語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非31【例【例9-59-5】一個簡單的數(shù)據(jù)報示例。】一個簡單的數(shù)據(jù)報示例。(1)主機1(數(shù)據(jù)發(fā)送方):(2)主機2(數(shù)據(jù)接收方):Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大

23、學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非329.3.3廣播數(shù)據(jù)報套接字廣播數(shù)據(jù)報套接字 我們把網(wǎng)絡(luò)上的IP地址劃分為A、B、C、D四類,它們是:A類地址為:0.0.0.0127.255.255.255B類地址為:128.0.0.0191.255.255.255C類地址為:192.0.0.0223.255.255.255D類地址為:224.0.0.0239.255.255.255廣播數(shù)據(jù)報套接字就是利用網(wǎng)絡(luò)系統(tǒng)保留的D類地址進行發(fā)送和接收數(shù)據(jù)。一個D類地址稱為一個廣播組,把要廣播或接收廣播的主機都加入到同一個廣播組中,即設(shè)置為相同的D類IP地址。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張

24、思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非339.3.3廣播數(shù)據(jù)報套接字廣播數(shù)據(jù)報套接字在java中,廣播數(shù)據(jù)報套接字為MulticastSocket類實現(xiàn),MulticastSocket 是UDP協(xié)議 套接字DatagramSocket的子類 ,其構(gòu)造方法為:(1)MulticastSocket() 創(chuàng)建多播套接字。 (2)MulticastSocket(int port) 創(chuàng)建多播套接字并將其綁定到指定端口。 MulticastSocket類的常用方法:(1)void joinGroup(InetAddress mcastaddr) 加入多播組。 (2)void setTim

25、eToLive(int ttl) 設(shè)置在此 MulticastSocket 上發(fā)出的多播數(shù)據(jù)包的默認(rèn)生存時間,以便控制多播的范圍。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非34【例【例9-69-6】一個廣播數(shù)據(jù)報套接字的演示示例?!恳粋€廣播數(shù)據(jù)報套接字的演示示例。在這個例子中,一個主機不斷地重復(fù)播發(fā)圖像文件,加入到同一組的主機可以隨時接收廣播的數(shù)據(jù)內(nèi)容。接收方接收信息后,將接收到的信息在窗體中顯示出來。 (a)信息發(fā)送方播發(fā)信息(b)顯示接收到的信息內(nèi)容(圖像文件)Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編

26、著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非359.4 JApplet編程編程9.4.1 JApplet及常用方法及常用方法9.4.2 JApplet應(yīng)用示例應(yīng)用示例Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非369.4.1 JApplet及常用方法及常用方法JApplet是一個能夠嵌入到HTML頁面中并在瀏覽器中運行的Java程序。當(dāng)使用瀏覽器對一個包含JApplet的Web頁面進行瀏覽時,瀏覽器將從Web服務(wù)器下載JApplet程序到本地執(zhí)行。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大

27、學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非379.4.1 JApplet及常用方法及常用方法1、JApplet的主要特性的主要特性JApplet類是一個很特殊的容器,它Applet的子類,Applet是從Java的抽象窗口工具集類庫(awt)中的Panel類擴展而來的,它將繼承Panel的所有屬性。因此,JApplet類具有容器的特性,在其內(nèi)部可以放置swing組件。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非389.4.1 JApplet及常用方法及常用方法2、JApplet的常用方法的常用方法方法名功能JApplet()JApp

28、let的構(gòu)造方法void init() 由瀏覽器調(diào)用,完成初始化。void start()由瀏覽器調(diào)用,開始applet運行。void stop() 由瀏覽器調(diào)用,終止applet執(zhí)行。void destroy()由瀏覽器調(diào)用,回收分配給applet的資源void play(URL url)播放在URL指定的音頻剪輯。AudioClip getAudioClip(URL url)返回 URL 參數(shù)指定的 AudioClip 對象。Image getImage(URL url) 返回能被繪制到屏幕上的 Image 對象。URL getDocumentBase()返回文檔的URL路徑void se

29、tJMenuBar(JMenuBar menuBar)設(shè)置JApplet的菜單欄。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非399.4.1 JApplet及常用方法及常用方法3、JApplet程序的一般形式程序的一般形式 一個JApplet程序必須是JApplet的子類,它必須是public的。JApplet程序的一般形式為:import javax.JApplet.*;public 類名類名 extends JApplet public void init(); public void start(); public voi

30、d stop(); public void destroy(); Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非409.4.1 JApplet及常用方法及常用方法4、JApplet程序的運行程序的運行為了執(zhí)行Applet,必須在HTML文檔中使用特殊的標(biāo)記,即標(biāo)記來調(diào)用Applet。例如: Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非419.4.2 JApplet應(yīng)用示例應(yīng)用示例 【例【例9-7】在瀏覽器中運行】在瀏覽器中運行JApplet程序。程序。1. impo

31、rt javax.swing.*;2. public class Example9_7 extends JApplet3. 4. public void init() 5. 6. JButton btn = new JButton(確定確定);7. add(btn);8. 9. 編譯這個源程序,得到一個Example9_7.class字節(jié)碼文件。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非42使用記事本之類的文本編輯工具,編寫一個HTML文件如下:將這個超文本文件保存為e9_7.html,并且與Example9_7.class在

32、同一文件目錄下。現(xiàn)在使用瀏覽器打開文件e9_7.html就可看到JApplet程序的運行結(jié)果。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非43【例【例9-8】用用getImage()方法和方法和drawImage()方方法加載和顯示圖像。法加載和顯示圖像。 核心語句:9. public void init() 10. img = getImage(getDocumentBase(), getParameter(img); 11. 12.13. public void paint(Graphics g) 14. g.drawIm

33、age(img, 0, 0, this); 15. Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非44【例【例9-99-9】在】在JAppletJApplet程序中使用程序中使用play()play()方法播放方法播放聲音文件。聲音文件??梢允褂肑Applet的靜態(tài)方法編寫播放.wav等格式的音頻文件的程序。1.import java.swing.*;2.import java.awt.Graphics;3.public class Example9_9 extends JApplet 4. public void paint(G

34、raphics g) 5. g.drawString(Listen to the music!, 25, 25);6. play(getDocumentBase(), 茉莉花.wav);7. 8.Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非45【例【例9-109-10】使用】使用getAudioClip()getAudioClip()方法播放聲音文件。方法播放聲音文件。用getAudioClip()方法建立的AudioClip對象可以處理聲音:play()開始播放;loop()循環(huán)播放;stop() 停止播放。Java語言程序設(shè)

35、計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非469.5基于分布模式的云計算系統(tǒng)基于分布模式的云計算系統(tǒng)9.5.1分布模式的云計算分布模式的云計算9.5.2簡易云計算系統(tǒng)設(shè)計簡易云計算系統(tǒng)設(shè)計Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非479.5.1分布模式的云計算分布模式的云計算在傳統(tǒng)的客戶/服務(wù)環(huán)境中,一般有一個功能強大的計算機作為服務(wù)器為多個客戶提供服務(wù),下面將討論一種以客戶端為核心、多個服務(wù)器為其提供服務(wù)的計算模式。這種客戶/服務(wù)器方式的云計算非常適合分布式系統(tǒng)模型下實現(xiàn),該

36、模型可以分為3個角色:管理節(jié)點、子節(jié)點和客戶端。管理節(jié)點和子節(jié)點構(gòu)成了云計算的服務(wù)器端,客戶端通過對API的調(diào)用實現(xiàn)對云計算系統(tǒng)的訪問,并通過API整合為不同的應(yīng)用程序。Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非489.5.1分布模式的云計算分布模式的云計算在這種分布模型下,一個并行應(yīng)用很容易使用這種客戶/服務(wù)器模式來設(shè)計:一個客戶可以將一個大的應(yīng)用分成若干小的問題,這些小的問題可以由多個服務(wù)器程序(子節(jié)點)同時處理,所以服務(wù)器程序?qū)ο鄳?yīng)問題求得解答后,再發(fā)送給客戶機??蛻魴C匯集所有從服務(wù)器程序發(fā)來的結(jié)果,然后再輸出給用戶。J

37、ava語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非499.5.1分布模式的云計算分布模式的云計算在具體實現(xiàn)這個模型的過程中,要將多個可用服務(wù)器(子節(jié)點)和它們的Internet域名保存在一個node.txt文件中,這個文件稱為子節(jié)點配置文件,由客戶程序存取它??蛻魴C同時還要讀取另一個文件root.txt,稱為用戶配置文件,它包括用戶定義的應(yīng)用參數(shù)。子節(jié)點配置文件node.txt和用戶配置文件root.txt構(gòu)成管理節(jié)點。 Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非509.5.1分布模式的云計算分布模式的云計算基于分布模式的云計算系統(tǒng) Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非519.5.2簡易云計算系統(tǒng)設(shè)計簡易云計算系統(tǒng)設(shè)計 下面設(shè)計一個簡易云計算系統(tǒng),該系統(tǒng)實現(xiàn)由多臺服務(wù)器共同完成n 階矩陣的乘法運算任務(wù)。1、系統(tǒng)結(jié)構(gòu)、系統(tǒng)結(jié)構(gòu)Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出版社哈爾濱工業(yè)大學(xué)計算機系代亞非52Java語言程序設(shè)計語言程序設(shè)計(第第2版版) 張思張思民編著民編著清華大學(xué)出

溫馨提示

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

評論

0/150

提交評論