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

正文內(nèi)容

論文-090-基于java網(wǎng)絡(luò)技術(shù)實現(xiàn)網(wǎng)絡(luò)聊天室(參考版)

2024-11-11 20:34本頁面
  

【正文】
。 (this)。 } } catch(ArrayIndexOutOfBoundsException e) { } catch(NullPointerException e){ } finally 22 { (line)。 //有人在一個窗口中換用另一個名字登陸; else if(!=null) //如果名字不為空; { (QUIT+)。 //line讀取來自客戶端線路的信息; //線路信息前端為 PEOPLE表明有新人進(jìn)入了聊天室; if((PEOPLE)) //如果客戶端輸入了姓名按下“進(jìn)//入聊天室”按鈕后字符串前綴為“ PEOPLE”; { try { //獲取當(dāng)前對象的線程; ClientThread client=(ClientThread)(((this)))。 //從向量中取出一個元素轉(zhuǎn)換成客戶線程,以便使用; if(!=null) //如果名字不為空; { try 21 { (+*)。i()。 //打印出輸入//輸出的錯誤信息; return。 //若連接不上則刪除向量序列中第一個與指定的參數(shù)對象相同的元素,同時后面的補上; ()。 firstout=new DataOutputStream(())。 try { in =new DataInputStream(())。 //定義網(wǎng)絡(luò)數(shù)據(jù)輸入流; //firstthread初始化線程; 20 public ClientThread(ServerFrame server,Socket ConnectSocket) { =server。 protected DataOutputStream firstout,out。 //line讀取來自 客戶端的消息; name格式為 : PEOPLE+名字 +[性別 ]。 } catch(IOException e) { } } } } } //客戶端線程類 //服務(wù)器為每一個客戶端啟動的線程; class ClientThread extends Thread { protected Socket ConnectSocket。 if(()) //name格式為: PEOPLE+名字 +[性別 ]。i()。 s3=(s2)。 s1=new String(PEOPLE)。 String s1,s2,s3。 try { (message)。i()。 //打印出錯誤信息流; (0)。 //客戶端線程啟動; (personal)。 //創(chuàng)建客戶線程實例; ()。 //關(guān)閉窗口; } public void run() //服務(wù)器端的 serverthread線程操作 run方法; { try { while(true) //循環(huán)始終監(jiān)聽來自網(wǎng)絡(luò)端口的信息; { Socket ConnectSocket=()。 //啟動服務(wù)器端新線程; } //實現(xiàn)接口; 18 public void actionPerformed(ActionEvent e) //當(dāng)按下關(guān)閉按鈕時; { dispose()。 //創(chuàng)建向量類實例,參數(shù)為客戶線程列表的數(shù)目; serverthread=new Thread(this)。 //輸出錯誤流; (0)。 //顯示窗口; try { listen=new ServerSocket(PORT)。 ( 等 待 客 戶 聯(lián) 機(jī)\n\n)。 //設(shè)置寬度與高度; setResizable(false)。 add(South,CloseServer)。 //注冊關(guān)閉按鈕事件處理方法; setLayout(new BorderLayout())。 //建立 文本域?qū)嵗?,在其中顯示時時狀態(tài); (false)。 CloseServer = new Button(關(guān)閉服務(wù)器 )。 //關(guān)閉服務(wù)器按鈕; public static void main(String args[]) { new ServerFrame()。 //定義服務(wù)器端線程; 17 TextArea ServerStatus。 //定義服務(wù)器端對象 listen監(jiān)聽服務(wù)//器,用來接收客戶端的請求; static Vector Clients。 //服務(wù)器主類 public class ServerFrame extends Frame implements Runnable,ActionListener { int PORT=8000。 import .*。 import .*。 16 一個比較理想的這一類應(yīng)用就是我們常用的 。 (2)不支持發(fā)送文件,不能進(jìn)行語音聊天和發(fā)表情符號。 本聊天程序僅僅實現(xiàn)了最簡單的互發(fā)消息功能,通過這個程序我們學(xué)習(xí)了用 Java語言基本掌握了客戶端 /服務(wù)器的設(shè)計框架。為了能夠?qū)崿F(xiàn)網(wǎng)絡(luò)聊天室的多人聊天程序,可以使用多線程,建立客戶端線程向量,實現(xiàn)多人網(wǎng)上同時談話和討論,同時還可以實現(xiàn)與某人進(jìn)行單獨的進(jìn)行悄悄話。它是利用語音軟件將人們打電話的聲音信息(模擬信號)轉(zhuǎn)變成數(shù)字信號,經(jīng)壓縮后通過 Inter傳送到聽話方一端,再由聽話方的軟件將數(shù)字 信號解壓縮并轉(zhuǎn)換成模擬信號,最后通過聲卡和音箱播放出來,從而實現(xiàn)通話。 我們可以修改程序 中的 Socket讀取服務(wù)器 IP 地址為特定 IP地址,再重新編譯程序,可以滿足在局域網(wǎng)或 Inter聊天需要。點擊【刷新聊天者列表】按鈕可以重新從服務(wù)器讀取聊天室人員信息列表。因為服務(wù)器端每次添加人員和減少人員都會向所有人廣播這一消息,所以,在斷開連接之后,列表框中的名字就消失了。在這里我們還必須注意: Frame 的窗口的右上角都有我們常見的三個圖標(biāo),分別代表窗口的最小化、最大化和關(guān)閉的操作,其中最大化和最小化的操作它能自動完成,而關(guān)閉窗口的操作不能通過關(guān)閉圖標(biāo)實現(xiàn),需要專門書寫有關(guān)的代碼。 ④在成員列表中雙擊某人彈出一個“私語 聊天窗口”如圖 (10)即可與其進(jìn)行悄悄對話。頂部是名字框??蛻舳诉\行時,中間為聊天室的內(nèi)容列表,左邊為成員列表。 ③自動判斷是否與現(xiàn)有聊天室人員重名不能進(jìn)入聊天室 (重名但是性別不同則可以進(jìn)入聊天室 )并給出相關(guān)信息。 創(chuàng) 建 一 個 Socket 對象 socket=new Socket(().getHost(),PORT),Socket 類的構(gòu)造函數(shù)有兩個參數(shù),第一個參數(shù)是欲連接到的 Server計算機(jī)的主機(jī),第二個參數(shù)是該 Server機(jī)上提供服務(wù)的端口號。一個程序不能使用 Panel作為它的最外層的圖形界面的容器,所以 Panel也可以進(jìn)一步包含另一個 Panel,使用 Panel的程序中總是存在著容器的嵌套,在這個程序中我們沒有使用嵌套的效果。 Panel類屬于無邊框容器。 ⑥單擊“關(guān)閉服務(wù)器”按鈕則終止服務(wù)器。 ④連接成功我們就創(chuàng)建一個客戶線程,并把該客戶線程添加到向量 vector 對象 Clients中 (personal),每次創(chuàng)建成功一個客戶端就創(chuàng)建一個客戶線程并把該線程添加到向量 vector 對象 Clients 中,退出一個客戶端向量就刪除一個客戶線程(this),即用多線程實現(xiàn)一個多人網(wǎng)絡(luò)聊天室。 圖 (8) 服務(wù)器端界面 ③ Socket ConnectSocket=()調(diào)用了 ServerSocket 對象的方法 accept()方法,這個方法的執(zhí)行將使 Server端的程序處于等待監(jiān)聽狀態(tài),程序會一直阻塞直到捕捉到來自Client端的請求,并返回一個用于與該 Client通信的 Socket對象 ConnectSocket,此后 Server程序只要向這個 Socket對象讀寫數(shù)據(jù),就可以實現(xiàn)遠(yuǎn)端的 Client讀寫數(shù)據(jù)。 圖 (7) 客戶端 /服務(wù)器通信圖“ ”與“ ”表示信息流方向 客戶端 進(jìn)入聊天室 退出聊天室 發(fā)送消息 發(fā)送悄悄話 刷新聊天者列表 PEPLE+名字 +[性別 ] QUIT 向其他人發(fā)送 PEOPLE+名字 +[性別 ],刷新列表 終止并離開當(dāng)前的客戶端線程 向其他人發(fā)送 QUIT+PE0PLE+名字 +[性 別 ] MSG+說話內(nèi)容 MSG+說話內(nèi)容 某人 1+悄悄的對 +某人 2+說 +說話內(nèi)容 發(fā)送某人 1 悄悄的對 +某人 2+說 +說話 內(nèi) 容 向某一客戶端發(fā)送所有線程的: PEOPLE+名字 +[性別 ]+* 服務(wù)器 啟動客戶端線程,向客戶端發(fā)送其他人的線程中的 PEPOLE+名字+[性別 ]+* 客戶端獲取其他所有人的列表 newlist 13 ①啟動服務(wù)器端 ServerFrame界面設(shè)計如圖 (8),先運行服務(wù)器端即可啟動聊天服務(wù)器。 ③當(dāng)關(guān)鍵字為 MSG時,表示消息的到來。此時為服務(wù)器更新用戶持有的聊天室現(xiàn)有成員列表。聯(lián)機(jī)程序的服務(wù)器端是無法在 Applet程序中使用的,這是基于安全性的考慮,所以聯(lián)機(jī)程序的服務(wù)器必須使用一般應(yīng)用程序的方式執(zhí)行,而客戶端程序則在 Applet程序中使用。 由于 Java執(zhí)行環(huán)境的安全性原則,我們并無法任意建立與服務(wù)器的聯(lián)機(jī),以免不法分子利用 Applet輕易與您的計算機(jī)聯(lián)機(jī),但我們還是可以有限度地在 Applet程序中建立 網(wǎng)絡(luò)聯(lián)機(jī)。例如,在小程序是一個客戶程序時,它只能連接來自它的那臺主機(jī)。然而 Java在運用小程序時是受到限制的,并且這種限制是嚴(yán)格。例如客戶端程序使用窗口來供使用者進(jìn)行操作,而聯(lián)機(jī)的建立、數(shù)據(jù)的接收與傳遞,則必須由另一個線程來進(jìn)行,否則就很可能造成程序停止響應(yīng)。服務(wù)器接收到來自客戶端的請求后即?? ?? 11 創(chuàng)建一個客戶端線程,以此同時客戶端也創(chuàng)建一個自己的客戶端線程用來向服務(wù)器發(fā)送信息,服務(wù)器端的客戶端線程接收到來自客戶端的信息然后通過廣播方法發(fā)送消息。如圖 (5)。 網(wǎng)絡(luò)之間進(jìn)程通 信的主要模式是客戶端 /服務(wù)器模式,即客戶端向服務(wù)器發(fā)送請求,服務(wù)器在指定端口處接收到請求后它們之間就建立了 建立起一個專用連接,它們就通過這個連接來通信 。服務(wù)器程序負(fù)責(zé)接收用戶的登陸請求,轉(zhuǎn)發(fā)用戶給其他用戶的聊天信息,并提供一個界面程序來對服務(wù)器進(jìn)行管理。 把服務(wù)器架設(shè)好,用客戶端軟件登陸上服務(wù)器就可以進(jìn)行聊天了。用戶可以在聊天室中公開發(fā)言,也可以雙擊指定某個用戶給其發(fā)送消息,實現(xiàn)兩個人的私聊。這就是 Java 的異常處理機(jī)制。每當(dāng) Java 程序運行過程中發(fā)生一個可識別的運行錯誤時,就有一個異常類與之相對應(yīng),系統(tǒng)都會產(chǎn)生一個相應(yīng)的該異常類的對象,即產(chǎn)生一個異常。為了能夠及時有效地處理程序 中的運行錯誤, Java 中引入了異常和異常類。 (五 ) 異常處理 異常( Exception)又稱為例外,是特殊的運行錯誤對象,對應(yīng)著 Java 語言特定的運行錯誤處理機(jī)制。 Java 中用于無連接的數(shù)據(jù)報通信的類有兩個: DatagramPacker類和 DatagramSocket 類。 數(shù)據(jù)報是無連接的遠(yuǎn)程通信服務(wù),數(shù)據(jù)以獨立的包為單位發(fā)送,不保證傳送順序和內(nèi)容的準(zhǔn)確性。例如網(wǎng)絡(luò)聊天。這個過程可以用圖 (4)表示。 (四 ) 用 Java 實現(xiàn)底層網(wǎng)絡(luò)通信 套接字( Socket)是 TCP/IP 協(xié)議的編程接口,即利用 Socket提供一組 API就可以編程實現(xiàn)TCP/IP 協(xié)議,在 Java 語言里,這個編程接口就是若干系統(tǒng)預(yù)先定 義好的類。 Java 中編程實現(xiàn)多線程應(yīng)用有兩種途徑:一種是創(chuàng)建擁護(hù)自己的線程子類,一種是在用戶自己的類中實現(xiàn) Runnable 接口。 多任務(wù)系統(tǒng)(例如
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1