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

正文內(nèi)容

web服務(wù)器設(shè)計論文畢業(yè)設(shè)計word格式-文庫吧資料

2024-12-07 11:27本頁面
  

【正文】 聽本機(jī)瀏覽器的情況。這時單擊 “Start”按鈕,然后從計算機(jī)上打開瀏覽器,在地址欄里面輸入 Web 服務(wù)器的 Socket 套接字,即輸入: 即可實(shí)現(xiàn)對本機(jī)的連接,服務(wù)器面板中顯示本機(jī)瀏覽器的連接情況。 調(diào)用主函數(shù)運(yùn)行 調(diào)用主函數(shù)運(yùn)行后,將出現(xiàn) Web 服務(wù)器界面,這時啟動 Web 服務(wù)器,然后從另一臺連網(wǎng) 的計算機(jī)上打開一個瀏覽器,在地址欄里面輸入 Web 服務(wù)器的Socket 套接字,就可以實(shí)現(xiàn) 服務(wù)器與瀏覽器的連接,服務(wù)器中將出現(xiàn)一系列的信息。 return result。 else if(.txt.equals(type)) result=text/plain。 else if(.html.equals(type)) result=text/html。 String result=null。 以上就完成了 Web 服務(wù)器與客戶端(瀏覽器)之間的數(shù)據(jù)交換,為了使文件能夠被人識別,我們最后還需要對 html 文件進(jìn)行解析,其代碼段為: public String getContentType(File file) { String fileName=()。 //瀏覽器和服務(wù)器間交 互的輸出流 ,不為空,關(guān)閉流 if(out!=null)()。輸出體部信息是通過輸入流來實(shí)現(xiàn)的,其主要語句為: fin=new BufferedInputStream(new FileInputStream(srcFile))。 接下來是輸出信息,分為輸出響應(yīng)頭部信息和輸出響應(yīng)體部信息。 /*對瀏覽器想獲得的文件名稱進(jìn)行去除 ?后面內(nèi)容處理 */ //查找字符串 ,一直到 ?為止 int index=(?)。 //將瀏覽器想獲得的文件名稱輸出至提示框 (new Date().toLocaleString()+ : Client +hostName+ get file +src+.)。 接下來是 流的 讀取,即從瀏覽器提交的請求頭部中獲得 想訪問的文件名稱 ,可 以 用 以下代碼段來實(shí)現(xiàn)。 即完成了文件輸入流的獲取、字節(jié)流向字符流的轉(zhuǎn)換和包裝成加強(qiáng)流, 而 out=new PrintStream(())。 字符流的傳輸分為: 獲得文件輸入輸出流;使用轉(zhuǎn)換流將字節(jié)流轉(zhuǎn)為字符流;包裝;讀寫;輸出流清除緩存;關(guān)閉流。 在這個多線程的實(shí)現(xiàn)中, 同樣的采用了 try……catch……finally 的異常處理機(jī)制來處理能出現(xiàn)的異常情況。 接下來是 I/O 接口 實(shí)現(xiàn)中最重要的部分, 以多線程實(shí)現(xiàn)服務(wù)器與瀏覽器之間的數(shù)據(jù)傳送。在該方法中還采用了一個 finally 語句,即不管是否出現(xiàn)異常情況,都會執(zhí)行該語句。 接下來是編寫 stop 方法,它與 start 方法一樣,同樣采用了一個異常處理機(jī)制,它的 try 語句為 if(serverSocket!=null)// ServerSocket 不為空 ()。 如果以上的方法中的任何一步出現(xiàn)錯誤,即異常, 則由 catch 語句捕捉異常,即執(zhí)行 catch 中的語句。程序中的線程構(gòu)造方法即為基本實(shí)現(xiàn)方法,首先構(gòu)造了一個線程,即語句中的 new Thread() {},然后在線程中構(gòu)造一個執(zhí)行線程的代碼塊public void run() {},線程類里面的業(yè)務(wù)邏輯都是在 run 方法中 ,運(yùn)行時會自動調(diào)用此方法 , 在構(gòu)造 run()方法中我們運(yùn)用了一個 try……catch 異常處理機(jī)制,用來處理 線程中將會出現(xiàn)的異常,該方法中用 while(true) 死循環(huán)語句和ServerSocket 對象的 accept()方 法來實(shí)現(xiàn)不斷的接收客戶端的請求。接下來運(yùn)用一個匿名內(nèi)部類來建立一個 Thread 線程, 該線程實(shí)現(xiàn)的功能為不斷的接收從瀏覽器客戶端發(fā)送的請求。} //啟動線程 catch (Exception e) {(frame, ())。 } } catch (Exception e) {(frame, ())。 new Thread()//匿名內(nèi)部類 ,構(gòu)造線程 { public void run() {//運(yùn)行線程 try{while(true)//無限循環(huán) {Socket socket=()。 其程序段如下所示: public void start(String port){ try {serverSocket=new ServerSocket((port))。首先編寫的是start 方法, 即用鼠標(biāo)點(diǎn)擊 “Start”按鈕后將會實(shí)現(xiàn)的功能。//聲明一個服務(wù)器端 ServerSocket 對象 public WebServerNet(WebServerFrame frame) //引入 Frame 框架 {=frame。其代碼段為: private WebServerFrame frame。在編程時 ,我們首先第一步是要聲明將要用到的實(shí)例變量,由于我們需要把設(shè)計的兩大部分即用戶界面部分和 I/O 接口部分聯(lián)系起來,故需要聲明一個代表用戶界面的事例變量 frame,并引入WebServerFrame 框架。 Web 服務(wù)器用戶界面如圖 所示。 } } 然后,按指定的布局管理器向容器添加組件,給事件的組件添加事件監(jiān)視器,注冊事件處理。 設(shè)計圖形界面,并為圖形界面添加監(jiān)聽 聲明一個圖形界面實(shí)例變量并調(diào)用,引入 Frame(圖形界面)框架 聲明一個 ServerSocket 用一個線程 Thread和異常處理機(jī)制定義 start 方法 用 一個異常處理機(jī)制定義 stop 方法 開始 結(jié)束 用一個多線程繼承 Thread實(shí)現(xiàn)服務(wù)器端與客戶端之間的通信(字符流) 調(diào)用主函數(shù) main 運(yùn)行 《 Web 服務(wù)器設(shè)計 》 a 第 8 頁 共 24 頁 …… public WebServerFrame() { initComponent()。 public class WebServerFrame extends JFrame implements ActionListener {private JPanel btnPan = new JPanel(new FlowLayout())。而本文的重點(diǎn)在于說明 Web 服務(wù)器 I/O 端口的實(shí)現(xiàn),即Web 服務(wù)器是如何實(shí)現(xiàn)與客戶端(瀏覽器)的連接與數(shù)據(jù)傳輸?shù)模试谙旅鏁敿?xì)的說明。 本次課程設(shè)計中運(yùn)用的是字符流,而 要實(shí)現(xiàn)字符流的傳輸,其設(shè)計順序?yàn)椋韩@得文件輸入輸出流;使用轉(zhuǎn)換流將字節(jié)流轉(zhuǎn)為字符流;包裝;讀寫;輸出流清除緩存;關(guān)閉流。流式輸入、輸出的特點(diǎn)是數(shù)據(jù)的獲取和發(fā)送均按數(shù)據(jù)序列進(jìn)行,每一個數(shù)據(jù)都必須等待排在它前面的數(shù) 據(jù)讀入或送出之后才能被讀寫,每次操作處理的都是序列中剩余的未讀寫數(shù)據(jù)中的第一個,而不能隨意選擇輸入輸出的位置。 流 Java 的輸入 /輸出是以流的方式來處理的,流是在計算機(jī)輸入、輸出操作中流動的數(shù)據(jù)序列。這樣程序需要建立自己的線程時, 《 Web 服務(wù)器設(shè)計 》 a 第 6 頁 共 24 頁 值需要建立一個已定義好的 Thread 子類的實(shí)例就可以了。在本設(shè)計中是用創(chuàng)建 Thread 類的子類來實(shí)現(xiàn)多線程客戶端與服務(wù)器端的通信的。線程的 基本 實(shí)現(xiàn)方法 為: 1構(gòu)造線程 new; 2啟動線程 Start( ); 3運(yùn)行線程 run( ),因此我們可以得到一個 Java 線程的 建立及運(yùn)行的 基本結(jié)構(gòu)為: new Thread(){ public void run(){} }.start() 多線程機(jī)制是 Java 語言的又一重要特征,使用多線程技術(shù)可以使系統(tǒng)同時運(yùn)行多個執(zhí)行體,這樣可以加快程序的響應(yīng)時間,提高計算機(jī)資源的利用率。 Java 中,線程用 Tread 類及其子類的對象來表示。 一般情況用于資源 (,io)的回收 。如果要捕獲的多個異常之間沒有父子關(guān)系,各類 catch 塊的順序無關(guān)緊要,但如果他們之間有父子關(guān)系,應(yīng)該將子類的 catch 放在父類的catch 之前,即從小到大排列 catch。 catch() {}: 出現(xiàn)異常,捕捉處理。 try……catch……finally 異常處理方式的基本結(jié)構(gòu)為: try{ }catch() {} 《 Web 服務(wù)器設(shè)計 》 a 第 5 頁 共 24 頁 finally{} 其中: try{}:將有可能出 現(xiàn)異常的代碼塊括起來,預(yù)處理。任何用計算機(jī) 程序設(shè)計語言編寫的程序,在運(yùn)行過程中都不可避免的可能出現(xiàn)各種各樣的異常 ,而程序運(yùn)行中的異??梢灶A(yù)料但是不可避免,所以我們有必要運(yùn)用一個異常處理的機(jī)制來處理這些有可能出現(xiàn)的異常情況 [3]。而創(chuàng)建一個 Socket 對象用于與服務(wù)器建立連接,使用指定的端口號使得服務(wù)器在捕獲到客戶端的請求時,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1