freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程(下)ppt(編輯修改稿)

2024-11-14 14:50 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 Stream ()和getOutStream()來(lái)得到對(duì)應(yīng)的輸入 /輸出流以進(jìn)行讀 /寫操作,這兩個(gè)方法分別返回InputStream和 OutputSteam類對(duì)象。為了便于讀 /寫數(shù)據(jù),我們可以在返回的輸入 /輸出流對(duì)象上建立過(guò)濾流,如 DataInputStream、DataOutputStream或 PrintStream類對(duì)象,對(duì)于文本方式流對(duì)象,可以采用InputStreamReader和 OutputStreamWriter、PrintWirter等處理。 Socket ? 每一個(gè) Socket存在時(shí),都將占用一定的資源,在 Socket對(duì)象使用完畢時(shí),要其關(guān)閉。關(guān)閉 Socket可以調(diào)用 Socket的 Close()方法。在關(guān)閉 Socket之前,應(yīng)將與 Socket相關(guān)的所有的輸入 /輸出流全部關(guān)閉,以釋放所有的資源。而且要注意關(guān)閉的順序,與 Socket相關(guān)的所有的輸入 /輸出該首先關(guān)閉,然后再關(guān)閉 Socket。 ? ()。 ? ()。 ? ()。 ? 盡管 Java有自動(dòng)回收機(jī)制,網(wǎng)絡(luò)資源最終是會(huì)被釋放的。但是為了有效的利用資源,建議讀者按照合理的順序主動(dòng)釋放資源。 Client/Server程序設(shè)計(jì) ? 下面我們給出一個(gè)用 Socket實(shí)現(xiàn)的客戶和服務(wù)器交互的典型的 C/S結(jié)構(gòu)的演示程序,讀者通過(guò)仔細(xì)閱讀該程序,會(huì)對(duì)前面所討論的各個(gè)概念有更深刻的認(rèn)識(shí)。程序的意義請(qǐng)參考注釋。 client/server程序設(shè)計(jì) ? 前面提供的 Client/Server程序只能實(shí)現(xiàn) Server和一個(gè)客戶的對(duì)話。在實(shí)際應(yīng)用中,往往是在服務(wù)器上運(yùn)行一個(gè)永久的程序,它可以接收來(lái)自其他多個(gè)客戶端的請(qǐng)求,提供相應(yīng)的服務(wù)。為了實(shí)現(xiàn)在服務(wù)器方給多個(gè)客戶提供服務(wù)的功能,需要對(duì)上面的程序進(jìn)行改造,利用多線程實(shí)現(xiàn)多客戶機(jī)制。服務(wù)器總是在指定的端口上監(jiān)聽(tīng)是否有客戶請(qǐng)求,一旦監(jiān)聽(tīng)到客戶請(qǐng)求,服務(wù)器就會(huì)啟動(dòng)一個(gè)專門的服務(wù)線程來(lái)響應(yīng)該客戶的請(qǐng)求,而服務(wù)器本身在啟動(dòng)完線程之后馬上又進(jìn)入監(jiān)聽(tīng)狀態(tài),等待下一個(gè)客戶的到來(lái)。 ? 客戶端的程序和上面程序是完全一樣的,讀者如果仔細(xì)閱讀過(guò)上面的程序,可以跳過(guò)不讀,把主要精力集中在 Server端的程序上。 UDP數(shù)據(jù)報(bào) ? 前面在介紹 TCP/IP協(xié)議的時(shí)候,我們已經(jīng)提到,在 TCP/IP協(xié)議的傳輸層除了 TCP協(xié)議之外還有一個(gè) UDP協(xié)議,相比而言 UDP的應(yīng)用不如 TCP廣泛,幾個(gè)標(biāo)準(zhǔn)的應(yīng)用層協(xié)議 HTTP,F(xiàn)TP, SMTP… 使用的都是 TCP協(xié)議。但是,隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展, UDP協(xié)議正越來(lái)越來(lái)顯示出其威力,尤其是在需要很強(qiáng)的實(shí)時(shí)交互性的場(chǎng)合,如網(wǎng)絡(luò)游戲,視頻會(huì)議等, UDP更是顯示出極強(qiáng)的威力,下面我們就介紹一下Java環(huán)境下如何實(shí)現(xiàn) UDP網(wǎng)絡(luò)傳輸。 Datagram ? 所謂數(shù)據(jù)報(bào)( Datagram)就跟日常生活中的郵件系統(tǒng)一樣,是不能保證可靠的寄到的,而面向鏈接的TCP就好比電話,雙方能肯定對(duì)方接受到了信息。在本章前面,我們已經(jīng)對(duì) UDP和 TCP進(jìn)行了比較,在這里再稍作總結(jié): ? TCP:可靠,傳輸大小無(wú)限制,但是需要連接建立時(shí)間,差錯(cuò)控制開(kāi)銷大。 ? UDP:不可靠,差錯(cuò)控制開(kāi)銷較小,傳輸大小限制在64K以下,不需要建立連接。 ? 總之,這兩種協(xié)議各有特點(diǎn),應(yīng)用的場(chǎng)合也不同,是完全互補(bǔ)的兩個(gè)協(xié)議,在 TCP/IP協(xié)議中占有同樣重要的地位,要學(xué)好網(wǎng)絡(luò)編程,兩者缺一不可。 DatagramSocket、 DatagramPacket ? 包 DatagramSocket和 DatagramPacket用來(lái)支持?jǐn)?shù)據(jù)報(bào)通信, DatagramSocket用于在程序之間建立傳送數(shù)據(jù)報(bào)的通信連接, DatagramPacket則用來(lái)表示一個(gè)數(shù)據(jù)報(bào)。先來(lái)看一下 DatagramSocket的構(gòu)造方法: ? DatagramSocket()。 ? DatagramSocket(int prot)。 ? DatagramSocket(int port, IAddress laddr)。 ? 其中, port指明 socket所使用的端口號(hào),如果未指明端口號(hào),則把socket連接到本地主機(jī)上一個(gè)可用的端口。 laddr指明一個(gè)可用的本地地址。給出端口號(hào)時(shí)要保證不發(fā)生端口沖突,否則會(huì)生成SocketException類例外。 UDP的簡(jiǎn)單的 Client/Server程序設(shè)計(jì) ? 有了上面的知識(shí),我們就可以來(lái)構(gòu)件一個(gè)基于UDP的 C/S 網(wǎng)絡(luò)傳輸模型 ? 1. 客戶方程序 ? 2. 服務(wù)器方程序 : ? 3. 程序 ? DatagramSocket只允許數(shù)據(jù)報(bào)發(fā)送一個(gè)目的地址, MulticastSocket,允許數(shù)據(jù)報(bào)以廣播方式發(fā)送到該端口的所有客戶。MulticastSocket用在客戶端,監(jiān)聽(tīng)服務(wù)器廣播來(lái)的數(shù)據(jù)。 ? 我們對(duì)上面的程序作一些修改,利用 MulticastSocket實(shí)現(xiàn)廣播通信。新程序完成的功能是使同時(shí)運(yùn)行的多個(gè)客戶程序能夠接收到服務(wù)器發(fā)送來(lái)的相同的信息,顯示在各自的屏幕上。 ? 1. 客戶方程序 : ? 2. 服務(wù)器方程序 : ? 3. 程序 小結(jié) ? 至此, Java網(wǎng)絡(luò)編程這一章已經(jīng)講解完畢。讀者通過(guò)學(xué)習(xí),應(yīng)該對(duì)網(wǎng)絡(luò)編程有了一個(gè)清晰的認(rèn)識(shí),可能對(duì)某些概念還不是十分的清楚,還是需要更多的實(shí)踐來(lái)進(jìn)一步掌握。編程語(yǔ)言的學(xué)習(xí)不同于一般的學(xué)習(xí),及其強(qiáng)調(diào)實(shí)踐的重要性。讀者應(yīng)該對(duì) URL網(wǎng)絡(luò)編程,Socket中的 TCP, UDP編程進(jìn)行大量的練習(xí)才能更好的掌握本章中所提到的一些概念,才能真正學(xué)到 Java網(wǎng)絡(luò)編程的精髓! ? 最后幾個(gè)小節(jié)所舉的例子,讀者務(wù)必要親自試驗(yàn)一下,如果遇到問(wèn)題,想辦法解決之。最好能根據(jù)自己的意圖加以改進(jìn)。這樣才能更好的理解這幾個(gè)程序,理解其中所包含的編程思想。 練習(xí)思考題 ? 在 JAVA語(yǔ)言網(wǎng)絡(luò)編程中, URL類是在 中,該類中提供了許多方法用來(lái)訪問(wèn) URL對(duì)象的各種資源,下列哪個(gè)用來(lái)獲取 URL中的端口號(hào)()。 A、 getFile() B、 getProtocol() C、 getHost() D、 getPort() ? 一個(gè) URL對(duì)象通常包含哪些信息? ? 怎樣讀取 URL中的資源? ? Java使用哪個(gè)組件來(lái)顯示 URL中的 HTML文件? 第 11章 Java Applet基礎(chǔ) ? Java Applet的運(yùn)行原理 ? Applet類及其常用方法 ? 一個(gè)顯示動(dòng)畫的 Applet程序 ? Applet中使用 URL ? Applet中建立新線程 ? Applet中播放聲音 Java Applet的運(yùn)行原理 ? 一個(gè) Java Applet程序中必須有一個(gè)類是 Applet類的子類。稱該子類是 Java Applet的主類,并且主類必須修飾為 public。 ? Java Applet程序是通過(guò)瀏覽器來(lái)執(zhí)行的,因此,它和 Java應(yīng)用程序有許多不同之處。 Applet的運(yùn)行環(huán)境 ? 一個(gè) Java應(yīng)用程序經(jīng)過(guò)編譯成 .class后,可直接通過(guò) Java解釋器來(lái)執(zhí)行。一個(gè)Java Applet在執(zhí)行時(shí)也是先被編譯成為 .class文件,但必須再將字節(jié)碼文件嵌入到 Web頁(yè)面中,通過(guò)瀏覽器或使用JDK中的 appletviewer命令來(lái)運(yùn)行。 ? 下面通過(guò)例子來(lái)說(shuō)明一個(gè) Java Applet的運(yùn)行原理。 【 例 111】 一個(gè)名為 Applet類,在瀏覽器的坐標(biāo)( 25, 25)位置顯示字符串。 ? package chapter11。 ? import 。//Applet類是所有的 Java applet的父類; ? import 。//在進(jìn)行顯示輸出時(shí),需要用到類 Graphics的對(duì)象; ? public class HelloEducation extends Applet { ? // 程序員給這個(gè)類取名為 HelloEducation ? // 所有的 applet程序都是 Applet類的子類 ? public String s。 ? public void init() { ? s = new String(Wele to Tongfang Education)。 ? // 生成一個(gè)字符串對(duì)象 ? } ? public void paint(Graphics g) { ? (s, 25, 25)。 // 在瀏覽器中坐標(biāo)為( 25, 25)的位置顯示字符串 s ? } ? } ? Applet應(yīng)用程序必須嵌入在 HTML頁(yè)面中,才能得到解釋執(zhí)行; ? Applet可以從 Web頁(yè)面中獲得參數(shù),并和 Web頁(yè)面進(jìn)行交互。 ? 含有 Applet的網(wǎng)頁(yè)的 HTML文件代碼中必須帶有< applet>和< /applet>這樣一對(duì)標(biāo)記,當(dāng)支持 Java的網(wǎng)絡(luò)瀏覽器遇到這對(duì)標(biāo)記時(shí),就將下載相應(yīng)的小程序代碼并在本地計(jì)算機(jī)上執(zhí)行該 Applet小程序。 ? Applet是一種 Java的小程序,它通過(guò)使用該 Applet的HTML文件,由支持 Java的網(wǎng)頁(yè)瀏覽器下載運(yùn)行。也可以通過(guò) java開(kāi)發(fā)工具的 appletviewer來(lái)運(yùn)行。 Applet 程序離不開(kāi)使用它的 HTML文件。這個(gè) HTML文件中關(guān)于Applet的信息至少應(yīng)包含以下三點(diǎn): ? 字節(jié)碼文件名 (編譯后的 Java文件,以 .class為后綴 ); ? 字節(jié)碼文件的地址; ? 在網(wǎng)頁(yè)上顯示 Applet的方式。 ? 一個(gè) HTML文件增加 Applet有關(guān)的內(nèi)容只是使網(wǎng)頁(yè)更加富有生氣,如添加聲音、動(dòng)畫等這些吸引人的特征,它并不會(huì)改變 HTML文件中與 Applet無(wú)關(guān)的元素。 什么是 appletviewer ? appletviewer是 JDK下的一個(gè) Applet查看工具,在 Java安裝目錄下的 bin文件夾中可以找到這個(gè)可執(zhí)行文件。 ? appletviewer帶有一個(gè)命令行參數(shù)形式的 URL,它指向一個(gè)含有 Applet引用的 HTML文件。這個(gè)Applet引用是一個(gè)指定了 appletviewer要裝載代碼的 HTML標(biāo)記: applet code= width=220 height=160/applet Java Applet程序開(kāi)發(fā)步驟 ? Applet程序開(kāi)發(fā)主要步驟如下: ? 選用 EDIT或 Windows Notepad等工具作為編輯器建立 Java Applet源程序。 ? 把 Applet的源程序轉(zhuǎn)換為字節(jié)碼文件。 ? 編制使用 class 的 HTML文件。在 HTML文件內(nèi)放入必要的< APPLET>語(yǔ)句。 ? 下面舉一個(gè)最簡(jiǎn)單的 HelloWorld 例子 112來(lái)說(shuō)明 Applet程序的開(kāi)發(fā)過(guò)程: 1.編輯 Applet 的 java源文件 ? 創(chuàng)建文件夾 C:\ghq,在該文件夾下建立 ? 【 例 112】 ? import 。 ? import .*。 ? public class HelloWorld extends Applet // 繼承 Appelet類,這是Appelet Java程序的特點(diǎn) ? { ? public void paint(Graphics g) { ? (Hello World!, 5, 35)。 ? } ? } ? 保存上述程序在 C:\java_work\11\。 2.編譯 Applet ? 編譯 JDK命令: ? 注意: 如果編寫的源程序違反了 Java編程語(yǔ)言的語(yǔ)法規(guī)則, Java編譯器將在屏幕上顯示語(yǔ)法錯(cuò)誤提示信息。源文件中必須不含任何語(yǔ)法錯(cuò)誤, Java編譯器才能成功地把源程序轉(zhuǎn)換為 appletviewer和瀏覽器能夠執(zhí)行的字節(jié)碼程序。 ? 成功地編譯 Java applet之后生成響應(yīng)的字節(jié)碼文件。用資源管理器或 DIR命令列出目錄列表,將會(huì)發(fā)現(xiàn)目錄 C:\ghq中多了一個(gè)名為。 3.創(chuàng)建 HTML文件 ? 在運(yùn)行創(chuàng)建的 之前 , 還需創(chuàng)建一個(gè) HTML文件 , appletviewer或?yàn)g覽器將通過(guò)該 文 件 訪 問(wèn) 創(chuàng) 建 的 Applet 。 為運(yùn)行, 需要?jiǎng)?chuàng)建包含如下 HTML語(yǔ)句的名為 。 ? 【 例 113】 ? html ? head ? titleMy applet 39。HelloWorld39。 starting page/title ? /head ? body ? applet codebase=. ? code= ? name=HelloWorld ? width=200 ? height=100 ? !param name=p0 value= ? param name=p1 value= ?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1