網絡上的系統結構多為客戶/服務器模式
服務器端負責數據和圖像等的存儲
維護
治理以及傳遞
客戶端則負責人機界面的操作
送出需求及顯示收回的數據
下面介紹一下如何使用Java來進行網絡編程
) 由於客戶端通過IE同服務器建立聯系
所以客戶端使用Applet
服務器端使用Application
) 服務器應設置成多線程
應答多個客戶的請求
) 兩端通信使用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通信機制提供了兩種通訊方式
有聯接和無聯接方式
分別面向不同的應用需求
使用有聯接方式時
通信鏈路提供了可靠的
全雙工的字節流服務
在該方式下
通信雙方必須創建一個聯接過程並建立一條通訊鏈路
以後的網絡通信操作完全在這一對進程之間進行
通信完畢關閉此聯接過程
使用無聯接方式時其系統開銷比無聯接方式小
但通信鏈路提供了不可靠的數據報服務
不能保證信源所傳輸的數據一定能夠到達信宿
在該方式下
通信雙方不必創建一個聯接過程和建立一條通訊鏈路
網絡通信操作在不同的主機和進程之間轉發進行
Java語言簡介
Java語言的優點主要表現在
簡單
面向對象
多線程
分布性
體系結構中立
安全性等方面
(
) 簡單性
Java與C++語言非常相近
但Java比C++簡單
它拋棄了C++中的一些不是絕對必要的功能
如頭文件
預處理文件
指針
結構
運算符重載
多重繼續以及自動強迫同型
Java實現了自動的垃圾收集
簡化了內存治理的工作
這使程序設計更加簡便
同時減少了出錯的可能
(
) 面向對象
Java提供了簡單的類機制和動態的構架模型
對象中封裝了它的狀態變量和方法
很好地實現了模塊化和信息隱藏
而類則提供了一類對象的原型
通過繼續和重載機制
子類可以使用或重新定義父類或超類所提供的方法
從而既實現了代碼的復用
又提供了一種動態的解決方案
Java是一種完全面向對象的程序設計語言
它除了數組
布爾和字符三個基本數據類型外的其它類都是對象
它不再支持全局變量
在Java中
假如不創建新類就無法創建程序
Java程序在運行時必須先創建一個類的實例
然後才能提交運行
Java同樣支持繼續特性
Java的類可以從其它類中繼續行為
但Java只支持類的單重繼續
即每個類只能從一個類中繼續
Java支持界面
界面答應程序員定義方法但又不立即實現
一個類可以實現多個界面
利用界面可以得到多重繼續的許多優點而又沒有多重繼續的問題
(
) 多線程
多線程使應用程序可以同時進行不同的操作
處理不同的事件
在多線程機制中
不同的線程處理不同的任務
他們之間互不干涉
不會由於一處等待影響其他部分
這樣輕易實現網絡上的實時交互操作
Java程序可以有多個執行線程
如可以讓一個線程進行復雜的計算
而讓另一個線程與用戶進行交互
這樣用戶可以在不中斷計算線程的前提下與系統進行交互
多線程保證了較高的執行效率
(
) 分布性
Java是面向網絡的語言
通過它提供的類庫可以處理TCP/IP協議
用戶可以通過URL地址在網絡上很方便的訪問其他對象
(
) 體系結構中立
Java是一種網絡語言
為使Java程序能在網絡的任何地方運行
Java解釋器生成與體系結構無關的字節碼結構的文件格式
Java為了做到結構中立
除生成機器無關的字節碼外
還制定了完全統一的語言文本
如Java的基本數據類型不會隨目標機的變化而變化
一個整型總是
位
一個長整型總是
位
為了使Java的應用程序能不依靠於具體的系統
Java語言環境還提供了用於訪問底層操作系統功能的類組成的包
當程序使用這些包時
可以確保它能運行在各種支持Java的平台上
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25926.html