




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、使用JAVA編寫網絡通信程序 摘要 本文闡述了使用JAVA編程語言對基于客戶/服務器模式的應用編寫通信程序,討論了SOCKET機制、輸入輸出流以及程序實碼。關鍵詞 JAVA,網絡,SOCKET,APPLET網絡上的系統結構多為客戶/服務器模式,服務器端負責數據和圖像等的存儲、維護、管理以及傳遞,客戶端則負責人機界面的操作、送出需求及顯示收回的數據。 下面介紹一下如何使用JAVA來進行網絡編程:1)
2、; 由于客戶端通過IE同服務器建立聯系,所以客戶端使用Applet,服務器端使用Application;2) 服務器應設置成多線程,應答多個客戶的請求;3) 兩端通信使用SOCKET機制。 1 Java中輸入/輸出流概念:過濾流DataInputStream 和DataOutputStream 除了分別作為FilterInputStream 和FilterOutputStream的子類外,還分別實現了接口DataInput 和DataOutput。接口D
3、ataInput 中定義的方法主要包括從流中讀取基本類型的數據、讀取一行數據、或者讀取指定長度的字節數,如readBoolean() readInt()、readLine()、readFully()等。接口DataOutput中定義的方法主要是向流中寫入基本類型的數據或者寫入一定長度的字節數組,如writeChar()、writeDouble() DataInputStream可以從所連接的輸入流中讀取與機器無關的基本類型數據,用以實現一種獨立于具體平臺的輸入方式;DataInputStream 可以向所連接的輸出流寫入基本類型的數據。 2 Socket 機制
4、 Socket是面向客戶/服務器模型設計的,網絡上的兩個程序通過一個雙向的通訊連接實現數據的交換,這個雙向鏈路的一端稱為一個Socket。 Socket通常用來實現客戶方和服務方的連接。客戶程序可以向Socket寫請求,服務器將處理此請求,然后通過Socket將結果返回給用戶。Socket通信機制提供了兩種通訊方式:有聯接和無聯接方式,分別面向不同的應用需求。使用有聯接方式時,通信鏈路提供了可靠的,全雙工的字節流服務。在該方式下,通信雙方必須創建一個聯接過程并建立一條通訊鏈路,以后的網絡通信操作完全在這一對進程之間進行,通信完畢關閉此聯接過程。使用無聯接方式時其系統開銷比無聯接方式
5、小,但通信鏈路提供了不可靠的數據報服務,不能保證信源所傳輸的數據一定能夠到達信宿。在該方式下,通信雙方不必創建一個聯接過程和建立一條通訊鏈路,網絡通信操作在不同的主機和進程之間轉發進行。3 Java語言Java語言的優點主要表現在:簡單、面向對象、多線程、分布性、體系結構中立、安全性等方面。(1) 簡單性Java與C+語言非常相近,但Java比C+簡單,它拋棄了C+中的一些不是絕對必要的功能,如頭文件、預處理文件、指針、結構、運算符重載、多重繼承以及自動強迫同型。 Java實現了自動的垃圾收集,簡化了內存管理的工作。這使程序設計更加簡便,同時減少了出錯的可能。(2) 面向對象Jav
6、a提供了簡單的類機制和動態的構架模型。對象中封裝了它的狀態變量和方法,很好地實現了模塊化和信息隱藏;而類則提供了一類對象的原型,通過繼承和重載機制,子類可以使用或重新定義父類或超類所提供的方法,從而既實現了代碼的復用,又提供了一種動態的解決方案。Java是一種完全面向對象的程序設計語言,它除了數組、布爾和字符三個基本數據類型外的其它類都是對象,它不再支持全局變量。在Java中,如果不創建新類就無法創建程序,Java程序在運行時必須先創建一個類的實例,然后才能提交運行。Java同樣支持繼承特性,Java的類可以從其它類中繼承行為,但Java只支持類的單重繼承,即每個類只能從一個類中繼承。Java
7、支持界面,界面允許程序員定義方法但又不立即實現,一個類可以實現多個界面,利用界面可以得到多重繼承的許多優點而又沒有多重繼承的問題。(3) 多線程多線程使應用程序可以同時進行不同的操作,處理不同的事件。在多線程機制中,不同的線程處理不同的任務,他們之間互不干涉,不會由于一處等待影響其他部分,這樣容易實現網絡上的實時交互操作。Java程序可以有多個執行線程,如可以讓一個線程進行復雜的,而讓另一個線程與用戶進行交互,這樣用戶可以在不中斷計算線程的前提下與系統進行交互。多線程保證了較高的執行效率。(4) 分布性Java是面向網絡的語言。通過它提供的類庫可以處理TCP/IP協議,用戶可以通過URL地址在
8、網絡上很方便的訪問其他對象。(5) 體系結構中立Java是一種網絡語言,為使Java程序能在網絡的任何地方運行,Java解釋器生成與體系結構無關的字節碼結構的文件格式。Java為了做到結構中立,除生成機器無關的字節碼外,還制定了完全統一的語言文本,如Java的基本數據類型不會隨目標機的變化而變化,一個整型總是32位,一個長整型總是64位。為了使Java的應用程序能不依賴于具體的系統,Java語言環境還提供了用于訪問底層操作系統功能的類組成的包,當程序使用這些包時,可以確保它能運行在各種支持Java的平臺上。 java.lang: 一般的語言包。其中包括用于字符串處理、多線程、異常處理
9、和數字函數等的類,該包是實現Java程序運行平臺的基本包java.util: 實用工具包。其中包括哈希表、堆棧、時間和日期等java.io: 基于流模型的輸入/輸出包。該包用統一的流模型實現了各種格式的輸入/輸出,包括文件系統、網絡和設備的輸入/輸出等: 網絡包。該包支持TCP/IP協議,其中提供了socket、URL和WWW的編程接口java.awt: 抽象窗口工具集。其中實現了可以跨平臺的圖形用戶界面組件,包括窗口、菜單、滾動條和對話框等java.applet: 支持applet程序設計的基本包(6) 安全性用于網絡、分布環境下的Java必須要防止病毒的入侵,Java不支持指針,一切對內存
10、的訪問都必須通過對象的實例變量來實現,這樣就防止了程序員使用欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產生的錯誤。4 JAVA工具(1) JDK1) Java編譯器Java編譯器將Java源代碼文件編譯成可執行的Java字節碼。Java源代碼文件的擴展名為 .java,Java編譯器把這種擴展名的文件編譯成擴展名為.class的文件。源文件中的每個類在編譯后都將產生一個class文件,這意味一個Java源代碼文件可能編譯生成多個class文件。2) J
11、ava解釋器Java解釋器對編譯生成的字節碼格式的可執行程序的運行提供支持,它是運行非圖形Java程序的命令行工具。3) Appletviewer它是Java Applet的簡單測試工具,可使用它來測試Java Applet程序,而不需要WWW瀏覽器的支持。(2) Visual J+Visual J+ 集成了可視化界面設計、交互式調試、代碼編輯、聯機幫助信息和介紹如何快速掌握該開發環境的實用向導等多項功能,同時具有能充分利用Active X和COM新技術的優勢。利用Visual J+可創建交互性很強的Internet應用程序,是難得的
12、Java 開發系統。5 客戶機/服務器通信的實現:(1) Application 同 Applet 的通信兩端通過Socket機制進行連接:1) 客戶端的編程流程:² 打開Socket,新建一個套接字;² 為套接字建立一個輸入和輸出流;² 根據服務器協議從套接字讀入或向套接字寫入;²
13、 清除套接字和輸入/輸出流;2)服務器端的編程流程:² 打開Server Socket,創建一個服務器型套接字和一個普通套接字,服務器型套接字在指定端口為客戶端請求的Socket 服務;² 使用ServerSocket類的accept()方法使服務器型套接字處于監聽狀態并把監聽結果返回給普通套接字;² 為該普通套接字創建輸入和輸出流;²
14、60; 從輸入和輸出流中讀入或寫入字節流,進行相應的處理,并將結果返回給客戶端;² 在客戶端和服務器工作結束后關閉所有的對象,如服務器型的套接字,普通套接字,輸入和輸出流。正是由于Java系統具有基于Socket的靈活通信機制,因而其應用程序能自由地打開和訪問網絡上的對象,就象在本地文件系統中一樣。(2) Applet之間的通信:Applet之間的通信使用Applet Context類的getApplet()方法。<applet code=applet1.cl
15、ass width=200 height=200 name=first>只要在程序中加入 Applet oneapplet=getAppletContext().getApplet(“first”);便可使用name為first的Applet中的方法了。在該課題中大量使用了該種通信方法,因為專門同服務器端通信的 Applet中包含接收信息方法和發送信息方法,所有客戶端的Applet都要使用負責通信的Applet中的方法,所以客戶端的Applet同負責通信的Applet必須進行通信。1
16、0; class ThreadEchoHandler extends Thread /創建線程 T2 theT2=new T2(); Socket incoming; int counter; ThreadEchoHandler(Socket i,int c)
17、160; incoming=i; counter=c; while(!done)
18、 String aa="" String str=in.readUTF(); /從客戶端得到字符串 if(pareTo("null")!=0 )
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級美術(浙美版)上冊教學設計
- 2024-2025學年高中語文 第四單元 創造形象 詩文有別 4 阿房宮賦教學設計 新人教版《中國古代詩歌散文欣賞》
- 4《藏戲》(教學設計)-2023-2024學年統編版語文六年級下冊
- 2023一年級數學下冊 數學好玩第2課時 填數游戲教學設計 北師大版
- 2024-2025學年高中語文 第一單元 三 知之為知之不知為不知教學設計5 新人教版選修《先秦諸子選讀》
- 2023九年級數學上冊 第一章 特殊平行四邊形2 矩形的性質與判定第2課時 矩形的判定教學設計 (新版)北師大版
- 2023四年級數學上冊 八 垂線與平行線第6課時 認識平行教學設計 蘇教版
- 2024-2025學年高中歷史 第三單元 第2課 局部的反法西斯斗爭教學設計5 新人教版選修3
- 3《我認識您了》(教學設計)2023-2024學年統編版道德與法治小學一年級上冊
- 5《憂傷也會助成長》教學設計-2023-2024學年心理健康六年級下冊教科版
- 2025江西南昌市江銅產融社會招聘1人筆試參考題庫附帶答案詳解
- 污水處理設施運維服務投標方案(技術標)
- 【道法】做自信的人課件 2024-2025學年統編版道德與法治七年級下冊
- 王陽明心學課件
- ups并機工作原理及擴容方案
- 北師大版七年級下冊實驗通知單
- 《工程款結算單》
- 關于提高航空公司輪椅旅客服務的對策研究
- 基坑開挖及鋼支撐安裝施工方案
- 新編日語第二冊(全)
- pantone色卡電子版U面5頁
評論
0/150
提交評論