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

正文內(nèi)容

基于java的聊天室程序設計-文庫吧資料

2025-05-15 21:03本頁面
  

【正文】 { (null, 類錯誤 !)。 天津科技大學 2021 屆本科生畢業(yè)設計 15 ()。 // 關閉流對象 ()。 ()。 // 關閉流對 象 ()。 if ((登錄成功 )) { new ChatRoom((String) , strServerIp)。 // 讀來自服務器 socket 的登錄狀態(tài) BufferedReader fromServer = new BufferedReader( new InputStreamReader(()))。 ObjectOutputStream treamToServer= new ObjectOutputStream(toServer .getOutputStream())。 try { // 連接到服 務器 Socket toServer。 = ()。 } if (source == btnExit) { (0)。 ()。 login()。 (null, 用戶名或密碼不能為空 )。 關鍵代碼如下: public void actionPerformed(ActionEvent ae) { Object source = ()??蛻舳苏埱筮B接,服務器的 accept()方法建立與客戶端的套接字連接。 } } 當用戶發(fā)送聊天信息時,服務端將會收到客戶端用 Socket 傳輸過來的聊天信息對象,然后將其強制轉(zhuǎn)換為 Chat 對象,并將本次用戶的聊天信息對象添加到聊天對象集 Message 中,以供所有聊天用戶訪問。 // 支持多線程 } } catch (IOException e) { fail(e, 不能監(jiān)聽! )。 } /** * 監(jiān)聽客戶的請求,當有用戶請求時創(chuàng)建 Connection 線程 */ public void run() { try { while (true) 天津科技大學 2021 屆本科生畢業(yè)設計 13 { // 監(jiān)聽并接受客戶的請求 Socket client = ()。 // 啟動線程 } public static void fail(Exception e, String str) { (str + 。 } (已啟動 ...)。 (1001)。 (())。 try { serverSocket = new ServerSocket(1001)。 private static Vector v = new Vector(1, 1)。 private ServerFrame sFrame。 ,并向客戶端發(fā)送服務器關閉消息。 。服務器采用多線程以滿足多用戶的請求,并通過創(chuàng)建一個ServerSocket 對象來監(jiān)聽來自客戶的連接請求,默認端口為 8000,然后無限循環(huán)調(diào)用 accept()方法接受客戶程序的連接。 一、 服務器程序模塊 () 服務器與客戶間通過套接口 Socket(TCP)連接。接收用戶的聊天信息是由多線程技術實現(xiàn)的,因為客戶端必須時時關注更新服 務器上是否有最新消息,在本程序中設定的是 1 秒刷新服務器一次,如果間隔時間太短將會增加客戶端與服務器端的通信負擔,而間隔時間長就會讓人感覺沒有時效性,所以經(jīng)過權衡后認為 1 秒最佳,因為每個用戶都不可能在 1 秒內(nèi)連續(xù)發(fā)送信息。 第三節(jié) 系統(tǒng)的功能模塊劃分及設計原理 當用戶聊天時,將當前用戶名、聊天對象、聊天內(nèi)容和是否私聊進行封裝并且序列化,然后與服務器建立 Socket 連接,再用對象輸出流包裝 Socket 的輸出流將聊天信息對象發(fā)送給服務器端。 。 ,通過字節(jié)輸出向?qū)Ψ桨l(fā)送數(shù)據(jù)。 ,建立一條 TCP 連接,再創(chuàng)建一個 Socket 對象與 客戶端的 Socket 對象進行通信。登錄成功進入聊天室用戶界面。 ,登錄用戶。 二、 系統(tǒng)功能流圖: 天津科技大學 2021 屆本科生畢業(yè)設計 10 圖 31 系統(tǒng)功能流圖 功能流 說明如下: ,服務器端創(chuàng)建一個 ServerSocket 對象,指定端口號。然后登錄成功的客戶就可以在服務器上聊天了。 服務器端工作流程 : 服務器端通過系統(tǒng)調(diào)用創(chuàng)建一個 ServerSocket 與指定的本地端口綁定,就可以在端口進行偵聽。 第二節(jié) 聊天系統(tǒng)的總體設計要點 一、實現(xiàn)思想 在 Inter 上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端程 序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。 客戶端: Java 環(huán)境 jdk,建議 ; Eclipse。還有,系統(tǒng)軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。這種方式遠程 訪問需要專門的技術,同時要對系統(tǒng)進行專門的設計來處理分布式的數(shù)據(jù)。缺點主要有以下幾個: 只適用于局域網(wǎng)。 二、 C/S 結構的優(yōu)點 C/S 結構的優(yōu)點是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務器??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務器 端完成 DBMS 的核心功能。 Client/Server 或客戶 /服務器模式 : Client 和 Server 常常分別處在相距很遠的兩臺計算機上, Client 程序的任務是將用戶的要求提交給 Server 程序,再將 Server程序返回的結果以特定的形式顯示給用戶; Server 程序的任務是接收客戶程序提出的服務請求,進行相應的處理,再將結果返回給客戶程序。目前大多數(shù)應用軟件系統(tǒng)都是 Client/Server形式的兩層結構,由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的 Web 應用發(fā)展, Web和 Client/Server 應用都可以進行同樣的業(yè)務處理,應用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應天津科技大學 2021 屆本科生畢業(yè)設計 8 用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。 第五節(jié) C/S 結構 C/S 結構,即大家熟知的客戶機和服務器結構。那么,為了按照一定的位置關系安排這些組件,需要用到布局管理器了。比如說,設計一個簡單 的編輯器,這個編輯器中只需要放置兩個按鈕和一個多行文本框。 我們設計一個窗口,其中是要添加若干組件的。 將加入到容器 (通常為窗口等 ) 的組件按照一定的順序和規(guī)則放置,使之看起來更美觀,這就是布局。 四、 窗格、滾動窗格和布局管理 窗格 (JPanel) 和滾動窗格 (JScrollPane) 在圖形用戶界面設計中大量用于各種組件在窗口上的布置和安排。 或者 39。 JPasswordField 是 JTextField 的子類,它們的主要區(qū)別是 JPasswordField 不會顯示出用戶輸入的東西,而只會顯示出程序員設定的一個 固定字符,比如 39。 三、 文本輸入框、密碼輸入框 文本輸入框包括兩種,單行文本輸入框 (JTextField) 和多行文本輸入框 (JTextArea)。那么我們又該如何判斷呢?切換按鈕 (JToggleButton) 提供了一個 isSelected() 方法用來判斷當前所處的狀態(tài),返回值為真 (true) 時表示它處于選擇狀態(tài),返回值為假 (false) 時表示它處于未選擇狀態(tài)。常成組出現(xiàn),一組單選按鈕中只有一個能被選中。 復選按鈕,又叫復選框 , 用一個小方框中是否打勾來表示兩種狀態(tài)。比如 JFrame 就提供有 addWindowListener 方法添加窗口監(jiān)聽器 (WindowListener)。比如,我們要在一個窗口 (JFrame) 激活時改變它的標題,我們就需要為這個窗口 (JFrame 對象 ) 添加一個可以監(jiān)聽到 “激活窗口 ”這一事件的監(jiān)聽器——WindowListener。 Java 的圖形用戶界面正是事件驅(qū)動的,并且由各種各樣的監(jiān)聽器 (Listener) 負責捕捉各種事件。 一 、 框架、監(jiān)聽器和事件 : 框架 (Frame, JFrame) 是 Java 圖形用戶界面的基礎,它就是我們通常所說的窗口,是 Windows/XWindow 應用程序的典型特征。 Swing使得程序在一個平臺上運行時能夠有不同的外觀。F) 。 Swing 采用了一種 MVC 的設計范式,即 “ 模型 視圖 控制 ” ( ModelView Controller),其中模型用來保存內(nèi)容,視圖用來顯示內(nèi)容,控制器用來控制用戶輸入。由于 AWT 組件通過與具體平臺相關的對等類( Peer)實現(xiàn),因此 Swing比 AWT 組件具有更強的實用性。 隨著發(fā)展的需要, Swing 出現(xiàn)了, Swing 組件幾乎都是輕量組件,與重量組件相比,沒有本地的對等組件,不像重量組件要在它們自己的本地不透明窗體中繪制,輕量組件在它們的重量組件的窗口中繪制。 AWT 設計的初衷是支持開發(fā)小應用程序的簡單用戶界面。 具體過程如下: 圖 22 三次握手協(xié)議 1 服務器 serversocket 2 監(jiān)聽 5 讀 6 寫 7 關閉 3 客戶端 socket 6 讀 5 寫 7 關閉 天津科技大學 2021 屆本科生畢業(yè)設計 6 第四節(jié) Swing 的簡介 AWT 是 Swing 的基礎。 具體如下: 天津科技大學 2021 屆本科生畢業(yè)設計 5 圖 21 Socket 程序的工作過程 二、三次握手協(xié)議: 第一次握手:原主機發(fā)送一個帶有本次連接的序號的請求的一個數(shù)據(jù)幀 第二次握手:目的主機收到請求后,如果同意連接,則發(fā)回一個帶有一個本次連接序號和源端機連接序列號的確認。 :利用虛擬連接通道傳送數(shù)據(jù)信息進行通信。 Socket 數(shù)據(jù)結構中包含這五種信息。 Socket 執(zhí)行體為你管理描述符表 。 Socket 描述符是一個指向內(nèi)部數(shù)據(jù)結構的指針,它指向描述符表入口??蛻魴C發(fā)送 End字符串就退出程序。而原始的字節(jié)流來源于 Socket 的兩個方法, getInputStream()和getOutputStream()方,分別用來得到輸入和輸出。 Java 的 IO 操作也不復雜。除非遠程調(diào)用,處理問題的核心在執(zhí)行上。 數(shù)據(jù)則是通過I/O 流進行傳輸 。它的靜態(tài)方法主要提供了得到本機 IP 和通過名字或 IP 直接得到 IAddress 的方法。 客戶機必須知道有關服 務器的 IP 地址。 具體的說:一個服務器應用程序一般偵聽一個特定的端口等待客戶端的連接請求,當一個連接請求到達時,客戶端和 服務器 端建立一個通信連接,在連接過程中,客戶端被分配一個本地端口與一個 Socket 建立連接,客戶端通過寫 Socket來通知服務器,以讀 Socket 中的信息,類似的服務器也獲得一個本地端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。但是 Stream Socket 所占的資源更多 。 Java 中的 socket 可以分成二大類: Datagram Sockets( 數(shù)據(jù)包 socket)和 Stream Sockets( 流 socket)。也就是說網(wǎng)絡上兩個或兩個以上雙工方式通信的進程之間總有一個 連接,這個連接的端點成為套接字,套接字是在比較低的層次上通信的。在數(shù)據(jù)傳輸過程中,各種服務器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端 [3]。 三、 端口號: 有的時候,一個 ip 地址不能完整的標識一臺服務器,這是因為一臺物理性的計算機同時運行著多個應用程序,這就需要我們來區(qū)別同一臺機子上的不同的服務,所以就在傳輸層和應用層 上設置接口,就是端口。在實現(xiàn) TCP 的主機上, TCP 可以被看成是一個模塊,和文件系統(tǒng)區(qū)別不大, TCP 也可以調(diào)用一些操作系統(tǒng)的功能, TCP 不直接和網(wǎng)絡打交道,控制網(wǎng)絡的任務由專門的設備驅(qū)動模塊完成。 二、 TCP/IP 協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)倪^程: 應用程序為了傳輸數(shù)據(jù)會調(diào)用 TCP,將數(shù)據(jù)和對應的參數(shù)傳給 TCP,將 TCP 數(shù)據(jù)包封裝在 IP 包內(nèi),通過 網(wǎng)絡送給目的 TCP。 TCP 協(xié)議的功能:差錯控制 ——可靠性、面向連接、分段( Segment)、端口號。第二,提供不可靠的無連接的服務。 TCP/IP 協(xié)議的體系結構共有四個層次 ,即應用層、傳輸層、網(wǎng)絡互聯(lián)層和網(wǎng)絡接口層。在編程處理上,一般先生成一個 URL類型的對象,然后用 Java 中相應的方法( method)獲取該對象所代表的資源。 二、 Java 語言在網(wǎng)絡上的應用 Java 程序可以獲取網(wǎng)絡上結點的圖象、聲音、 HTML 文檔及文本等資源,并可以對獲得的資源進行處理。 Java 和 C、 C++對于變量聲明、參數(shù)傳遞、操作符、流控制等使用了相同的傳統(tǒng) ,使得熟悉 C、 C++的程序員能很方便地進行編程。網(wǎng)絡包
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1