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

正文內(nèi)容

基于java的聊天室程序設(shè)計(jì)-在線(xiàn)瀏覽

2025-07-10 21:03本頁(yè)面
  

【正文】 。 它支持 URL 連接 ,WWW 的即時(shí)訪(fǎng)問(wèn) ,并且簡(jiǎn)化了用戶(hù) /服務(wù)器模型的程序設(shè)計(jì)。同時(shí) , Java 為了實(shí)現(xiàn)其簡(jiǎn)單、安全等特性 ,也摒棄了 C 和 C++中許多不合理的內(nèi)容 [1]。例如 Java 程序可以每隔一定時(shí)間讀取某結(jié)點(diǎn)提供的 最新數(shù)據(jù),并以圖表的形式顯示出來(lái)。 天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 3 第二節(jié) IP/TCP 協(xié)議常識(shí) 一、 IP、 TCP 協(xié)議的特點(diǎn): TCP/IP( Transmission Control Protocol/Inter Protocol)是傳輸控制協(xié)議 /網(wǎng)際協(xié)議的縮寫(xiě) , TCP/IP 是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。 IP 協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的 協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒(méi)有差錯(cuò)校驗(yàn)和處理的機(jī)制。 TCP 是傳輸控制協(xié)議,是面向連接的提供了一種可靠的傳輸服務(wù),它用三次握手和滑動(dòng)窗口機(jī)制來(lái)保證傳輸?shù)目煽啃裕斑M(jìn)行流量控制。接收方 TCP 在接收到數(shù)據(jù)后通知上層應(yīng)用程序, TCP 將保證接收數(shù)據(jù)的正確性。TCP 只是調(diào)用 IP 接口,向 TCP 提供所有 TCP 需要的服務(wù) [2]。端口實(shí)際是一個(gè) 16 位長(zhǎng)的地址,他的范圍是 0~ 65535 之間,其中 0~ 1023 是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進(jìn)程都知道的, 1024~ 65535 為一般端口,也稱(chēng)動(dòng)態(tài)端口、連接端口,用來(lái)隨時(shí)分配要求通信的個(gè)客戶(hù)端應(yīng)用程序。 第三節(jié) Socket 的簡(jiǎn)介 Socket 簡(jiǎn)稱(chēng)套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶(hù)和服務(wù)器之間的連接。 Java通過(guò) socket來(lái)完成它所有的網(wǎng)絡(luò)底層的通訊, socket是一種通訊的通道,天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 4 通過(guò)它可以將數(shù)據(jù)通過(guò)特定的端中發(fā)送及接收。 Stream Socket有一個(gè)永久性的鏈接,可以確保數(shù)據(jù)可靠的發(fā)送到對(duì)方。 Java 主要通過(guò) Socket 及 ServerSocket 來(lái)實(shí)現(xiàn) Stream Socket,一個(gè)用于客戶(hù)端,另一個(gè)用戶(hù)服務(wù)器端。服務(wù)器也通過(guò)它的本地端口連接一個(gè) Socket,通過(guò)讀寫(xiě)和客戶(hù)端通信 [8]。對(duì)于著一點(diǎn) Java 也提供了一個(gè)相關(guān)的類(lèi) IAddress 該對(duì)象的實(shí)例必須通過(guò)它的靜態(tài)方法來(lái)提供。 上面的方法基本可以建立一條連線(xiàn)讓兩臺(tái)計(jì)算機(jī)相互交流了。因?yàn)榈讓拥木W(wǎng)絡(luò)是繼續(xù)數(shù)據(jù)的。 所以你也必須導(dǎo)入 這個(gè)包。它提供了針對(duì)于字節(jié)流和 Unicode 的讀者和寫(xiě)者,然后也提供了一個(gè)緩沖用于數(shù)據(jù)的讀寫(xiě) 。服務(wù)器 可以 不斷接收客戶(hù)機(jī)所寫(xiě)入的信息只到。并且服務(wù)器也會(huì)做出Receive為回應(yīng)。調(diào)用Socket 函數(shù)時(shí), socket 執(zhí)行體將建立一個(gè) Socket,實(shí)際上 建立一個(gè) Socket意味著為一個(gè) Socket 數(shù)據(jù)結(jié)構(gòu)分配存儲(chǔ)空間。 兩個(gè)網(wǎng)絡(luò)程序之間的一個(gè)網(wǎng)絡(luò)連接包括五種信息:通信協(xié)議、本地協(xié)議地址、本地主機(jī)端口、遠(yuǎn)端主機(jī)地址和遠(yuǎn)端協(xié)議端口。 一、 Socket 程序的工作過(guò)程: Socket 連接:在通信開(kāi)始之前由通信雙方確認(rèn)身份,建立一條專(zhuān)用的虛擬連接道。 :通信結(jié)束時(shí),再將所建的虛擬連接拆除。 第三此握手:源端機(jī)收到含有兩次初始序列號(hào)的應(yīng)答后,再向目的主機(jī)發(fā)送一個(gè)帶有兩次連接的序列號(hào)的確認(rèn)。 Swing 的產(chǎn)生主要原因就是 AWT 不能滿(mǎn)足圖形化用戶(hù)界面發(fā)展的需要。例如 AWT 缺少剪 貼板、打印支持、鍵盤(pán)導(dǎo)航等特性,而且原來(lái)的 AWT 甚至不包括彈出式菜單或滾動(dòng)窗格等基本元素。 Swing 是由 100%純 Java 實(shí)現(xiàn)的, Swing 組件是用 Java 實(shí)現(xiàn)的輕量級(jí) ( light weight) 組件,沒(méi)有本地代碼,不依賴(lài)操作系統(tǒng)的支持,這是它與 AWT 組件的最大區(qū)別。 Swing 在不同的平臺(tái)上表現(xiàn)一致,并且有能力提供本地窗口系統(tǒng)不支持的其它特性。 Swing 外觀感覺(jué)采用可插入的外觀感覺(jué)( Pluggable Look and Feel, PLamp。 在 AWT 組件中,由于控制組件外觀的對(duì)等類(lèi)與具體平臺(tái)相關(guān),使得 AWT組件總是只有與本機(jī)相關(guān)的外觀。用戶(hù)可以選擇自己習(xí)慣的外觀。說(shuō)到 Windows/XWindow,大家很容易聯(lián)想到 “事件 (Event) 驅(qū)動(dòng) ”。 如果我們需要對(duì)某一個(gè)組件的某種事件進(jìn)行捕捉和處理時(shí),就需要為其 添加監(jiān)聽(tīng)器。 添加監(jiān)聽(tīng)器通常由組件類(lèi)提供的一個(gè) addXxxxxListener 的方法來(lái)完成。 二、 按鈕、切換按鈕、復(fù)選按鈕和單選按鈕 切換按鈕,有兩種狀態(tài)的按鈕,即按下?tīng)顟B(tài)和彈起狀態(tài),若稱(chēng)為選擇狀態(tài) 或天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 7 未選擇狀態(tài)。 單選按鈕,又叫收音機(jī)按鈕,以小圓框打點(diǎn)表示被選中。 除一般按鈕外,其余三種按鈕都有兩種狀態(tài),即選擇 (按下 ) 狀態(tài)和未選擇 (彈起 ) 狀態(tài)。而復(fù)選按鈕 (JCheckBox) 和單選按鈕 (JRadioButton) 都是從 JToggleButton 繼承的,所以也具有 isSelected() 方法。密碼輸入框則只有一種 (JPasswordField)。*39。39。這里所謂的布置和安排,就是布局 (Layout)。布局由布局管理器 (Layout Manager) 來(lái)管理。為了管理好這些管理的布局,我們就要使用布局管理器。這些組件是是按照一定的位置關(guān)系較規(guī)范的安排 的 。 常用的布局管理器有: FlowLayout、 BorderLayout、 GridLayout、 BoxLayout 等,其中 FlowLayout 和 BorderLayout 最常用 。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到 Client 端 和 Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。 一、 C/S 工作模式 C/S 結(jié)構(gòu)的基本原則是將計(jì)算機(jī)應(yīng)用任務(wù)分解成多個(gè)子任務(wù),由多臺(tái)計(jì)算機(jī)分工完成,即采用 “功能分布 ”原則。這種客戶(hù)請(qǐng)求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的計(jì)算機(jī)應(yīng)用模式。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶(hù)端響應(yīng)速度快。而隨著互聯(lián)網(wǎng)的飛速發(fā)展, 移動(dòng)辦公 和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。 客戶(hù)端需要安裝專(zhuān)用的客戶(hù)端軟件。特別是有很多分部或?qū)Yu(mài)店的情況,不是工作量的問(wèn)題,而是路程的問(wèn)題。 天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 9 第三章 系統(tǒng)分析與設(shè)計(jì)方案 第一節(jié) 開(kāi)發(fā)環(huán)境及工具 本系統(tǒng)所用的工具: 服務(wù)器端:( Windows平臺(tái))首先應(yīng)有 Java環(huán)境 jdk,建議采用 ; Eclipse。 本系統(tǒng)運(yùn)行所需用到的環(huán)境為 : 硬件配置 : 中央處理器( CPU) : P4 以上的處理器; 硬 盤(pán): 40GB 以上硬盤(pán); 內(nèi) 存: 256 以上的 DDR 內(nèi)存; 顯 卡: 128M 以上顯存顯卡 軟件配置: WINDOWS XP 版本、 AllInOneEclipse31 等。因此,程序要在 TCP/IP 環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶(hù)端兩部分程序。如果有客戶(hù)端連接請(qǐng)求,則創(chuàng)建一個(gè) Socket,將客戶(hù)端地址賦給這個(gè) Socket。 客戶(hù)端工作流程 : 客戶(hù)端程序相對(duì)簡(jiǎn)單,只需要建立一個(gè) Socket 與服務(wù)器端連接,成功后通過(guò)這個(gè) Socket 來(lái)發(fā)送和接收數(shù)據(jù) 就可以了。 對(duì)象等候客戶(hù)端的連接請(qǐng)求。如果未注冊(cè),先注冊(cè)再登錄。 Socket 對(duì)象,指定主機(jī)地址和端口號(hào),向服務(wù)器發(fā)送連接請(qǐng)求。 /輸出流,進(jìn)行數(shù)據(jù)傳輸準(zhǔn)備。 ,向?qū)Ψ桨l(fā)送 結(jié)束 信息,另一方收到結(jié)束信息后,雙方分別關(guān)閉各自的 TCP 連接。 三、 多用戶(hù)實(shí)時(shí)工作原理圖 否 是 服務(wù)器 serversocket 監(jiān)聽(tīng) 建立與客戶(hù)端連接的套接字 關(guān)閉 服務(wù)器 客戶(hù)端 socket 服務(wù)端信息 2.向服務(wù)器 寫(xiě) 信息 關(guān)閉 客戶(hù)端 啟動(dòng) 啟動(dòng) 登錄 注冊(cè) 是否注冊(cè) 天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 11 圖 32 多用戶(hù)實(shí)時(shí)工作原理圖 注:服務(wù)器的 run()方法中采用了 while(true)結(jié)構(gòu),不斷監(jiān)聽(tīng)客戶(hù)端的請(qǐng)求,如收到請(qǐng)求,建立與當(dāng)前請(qǐng)求的客戶(hù)端連接的 套接字,從而與客戶(hù)端建立聯(lián)系。當(dāng)用戶(hù)發(fā)送聊天信息時(shí),服務(wù)端將會(huì)收到客戶(hù)端用 Socket 傳輸過(guò)來(lái)的聊天信息對(duì)象,然后將其強(qiáng)制轉(zhuǎn)換為 Chat 對(duì)象,并將本次用戶(hù)的聊天信息對(duì)象添加到聊天對(duì)象集 Message 中,以供所有聊天用戶(hù)訪(fǎng)問(wèn)。當(dāng)每次用戶(hù)接收到聊天信息后將會(huì)開(kāi)始分析聊天信息然后將適合自己的信息人性化顯示在聊天信息界面上。在 Java 中使用套接口相當(dāng)簡(jiǎn)單, Java API 為處理套接口的通信提供了一個(gè)類(lèi) ,使得編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序相對(duì)容易。 天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 12 服務(wù)器具有以下功能: ,建立偵聽(tīng),接受客戶(hù)端連接。 (登錄信息的驗(yàn)證反饋、注冊(cè)信息的驗(yàn)證和反饋、轉(zhuǎn)發(fā)聊天信息等) 。 服 務(wù)器程序模塊源碼: private ServerSocket serverSocket。 private static Vector userOnline = new Vector(1, 1)。 //創(chuàng)建服務(wù)器 啟動(dòng)服務(wù)監(jiān)聽(tīng) 1001 端口 public AppServer() { sFrame = new ServerFrame()。 // 獲取服務(wù)器的主機(jī)名和 IP 地址 IAddress address = ()。 (())。 } catch (IOException e) { fail(e, 不能啟動(dòng)服務(wù)! )。 ()。 + e)。 new Connection(sFrame, client, userOnline, v)。 } } /** * 啟動(dòng)服務(wù)器 */ public static void main(String args[]) { new AppServer()。 二 、登錄程序模塊( ) 是客戶(hù)端程序登錄界面,負(fù)責(zé)用戶(hù)帳號(hào)信息的驗(yàn)證與接收服務(wù)器的反饋??蛻?hù)端將登錄信息封裝成 Customer 對(duì)象通過(guò)輸出流發(fā)送服務(wù) 器,等待服務(wù)器的驗(yàn)證,服務(wù)器反饋驗(yàn)證信息,客戶(hù)端根據(jù)反饋信息進(jìn)行登錄和登錄信息錯(cuò)誤處理。 if ((btnLogin)) { // 判斷用戶(hù)名和密碼是否為空 if (().equals()|| ().equals()) { JOptionPane op1 = new JOptionPane()。 } else { strServerIp = ()。 } 天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 14 } if ((btnRegister)) { strServerIp = ()。 new Register(strServerIp)。 } } // actionPerformed()結(jié)束 public void login() { // 接受客戶(hù)的詳細(xì)資料 Customer data = new Customer()。 = ()。 toServer = new Socket(strServerIp, 1001)。 // 寫(xiě)客戶(hù)詳細(xì)資料到服務(wù)器 socket ((Customer) data)。 String status = ()。 ()。 ()。 } else { (null, status)。 ()。 } } catch (ConnectException e1) { (null, 未能建立到指定服務(wù)器的連接 !)。 } catch (NotSerializableException e3) { (null, 對(duì)象未序列化 !)。 } } // login()結(jié)束 /** * 啟動(dòng)登陸窗體 * param args */ public static void main(String args[]) { new Login()。注冊(cè)模塊的原理跟登錄模塊基本相同。其他的注冊(cè)信息(密碼、年齡、郵箱)合法性都交給注冊(cè)模塊自己完成。 source=()。 } if ((btnCancel)) //返回 按鈕 { new Login()。 } 天津科技大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 16 if ((btnClear)) //清空 按鈕 { ()。 ()。 ()。 = ()。 = ()。 = ()。 //驗(yàn)證用戶(hù)名是否為空 if(()==0) { (null,用戶(hù)名不能為空 )。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1