摘要 本文闡述了使用JAVA程式設計語言對基於客戶/伺服器模式的應用編寫網路通訊程式,討論了SOCKET機制、輸入輸出資料流以及程式實現代碼。
關鍵詞 JAVA,網路,SOCKET,APPLET
網路上的系統結構多為客戶/伺服器模式,伺服器端負責資料和映像等的儲存、維護、管理以及傳遞,用戶端則負責人機介面的操作、送出需求及顯示收回的資料。
下面介紹一下如何使用JAVA來進行網路編程:
1) 由於用戶端通過IE同伺服器建立聯絡,所以用戶端使用Applet,伺服器端使用Application;
2) 伺服器應設定成多線程,應答多個客戶的請求;
3) 兩端通訊使用SOCKET機制。
Java中輸入/輸出流概念:
過濾流DataInputStream 和DataOutputStream 除了分別作為FilterInputStream 和FilterOutputStream的子類外,還分別實現了介面DataInput 和DataOutput。介面DataInput 中定義的方法主要包括從流中讀取基本類型的資料、讀取一行資料、或者讀取指定長度的位元組數,如readBoolean() readInt()、readLine()、readFully()等。介面DataOutput中定義的方法主要是向流中寫入基本類型的資料或者寫入一定長度的位元組數組,如writeChar()、writeDouble() DataInputStream可以從所串連的輸入資料流中讀取與機器無關的基本類型資料,用以實現一種獨立於具體平台的輸入方式;DataInputStream 可以向所串連的輸出資料流寫入基本類型的資料。
Socket 機制
Socket是面向客戶/伺服器模型設計的,網路上的兩個程式通過一個雙向的通訊串連實現資料的交換,這個雙向鏈路的一端稱為一個Socket。 Socket通常用來實現客戶方和服務方的串連。客戶程式可以向Socket寫請求,伺服器將處理此請求,然後通過Socket將結果返回給使用者。
Socket通訊機制提供了兩種通訊方式:有聯結和無聯結方式,分別面向不同的應用需求。使用有聯結方式時,通訊鏈路提供了可靠的,全雙工系統的位元組流服務。在該方式下,通訊雙方必須建立一個聯結過程並建立一條通訊鏈路,以後的網路通訊操作完全在這一對進程之間進行,通訊完畢關閉此聯結過程。使用無聯結方式時其系統開銷比無聯結方式小,但通訊鏈路提供了不可靠的資料報服務,不能保證信源所傳輸的資料一定能夠到達信宿。在該方式下,通訊雙方不必建立一個聯結過程和建立一條通訊鏈路,網路通訊操作在不同的主機和進程之間轉寄進行。