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

正文內(nèi)容

局域網(wǎng)聊天程序的實(shí)現(xiàn)—-文庫吧

2024-11-17 09:19 本頁面


【正文】 實(shí)用價(jià)值。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實(shí)現(xiàn)等優(yōu)點(diǎn)。 2 局域網(wǎng)聊天程序系統(tǒng) 分析 系統(tǒng) 理論基礎(chǔ) TCP/IP 的特點(diǎn) TCP/IP 協(xié)議的核心部分是傳輸層協(xié)議 (TCP、 UDP),網(wǎng)絡(luò)層協(xié)議 (IP)和物理接口層,這三層通常是在操作系統(tǒng)內(nèi)核中設(shè)計(jì)。因此用戶一般不涉及。 TCP 是面向連接的,通信雙方保持一條通路,好比目前的電話線,使用 tel 登陸 BBS,用的就是 TCP 協(xié)議; UDP 是無連接的,通信雙方都不保持對方的狀態(tài),瀏覽器訪問 Inter 時(shí)使用的 HTTP 協(xié)議就是基于 UDP 協(xié)議的。編程時(shí),編程界面有兩種 形式:一、是由內(nèi)核心直接提供的系統(tǒng)調(diào)用;二、使用以庫函數(shù)方式提供的各種函數(shù)。前者為核內(nèi)設(shè)計(jì),后者為核外設(shè)計(jì)。用戶服務(wù)要通過核外的應(yīng)用程序才能設(shè)計(jì),所以要使用套接字 (socket)來設(shè)計(jì)。 客戶機(jī) /服務(wù)器模式 C/S 結(jié)構(gòu)( Client/Server 結(jié)構(gòu))是大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng) 體系結(jié)構(gòu) ,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù) 合理分配到Client 端和 Server 端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用 軟件 系統(tǒng)都是 Client/Server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web 應(yīng)用發(fā)展, Web 和 Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯 組件 ;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。 首先服務(wù)器方要啟動,并根據(jù)請求提供相應(yīng)服務(wù) : ( 1) 打開一通信通道并告知本地主機(jī),它 在某一公認(rèn)地址端口上 (如 為80)接受客戶請求。 ( 2) 等待客戶請求到達(dá)該端口。 ( 3) 接收到重復(fù)服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號。接收并發(fā)服務(wù)請求,要激活一新進(jìn)程來處理這個(gè)客戶請求。新進(jìn)程處理此客戶請求,并不 需要對其他請求做出應(yīng)答。服務(wù)完成后,關(guān)閉此新進(jìn)程與客戶的通信鏈路,并終止。 ( 4) 返回第二步,等待另外的客戶請求 ( 5) 關(guān)閉服務(wù)器。 客戶方 : ( 1) 打開一通信通道,并連接到服務(wù)器所在主機(jī)的特定端口。 ( 2) 向服務(wù)器發(fā)出服務(wù)請求報(bào)文,等待并接收應(yīng)答;繼續(xù)提出請求。 ( 3) 請求結(jié)束后關(guān)閉通信通道并終止。 從上面的描述過程可知: ( 1) 客戶與服務(wù)器進(jìn)程的作用是非對稱的。因此編碼不同。 ( 2) 服務(wù)進(jìn)程一般是先于客戶請求啟動的。只要系統(tǒng)運(yùn)行,該進(jìn)程一直存在,直到正常終止或者強(qiáng)迫終止。 在 TCP/IP 網(wǎng)絡(luò)中兩個(gè)進(jìn)程間 的相互作用的主機(jī)模式是客戶機(jī) /服務(wù)器模式(Client/Server model)。該模式的建立基于以下兩點(diǎn): 非對等作用; 通信完全是異步的??蛻魴C(jī) /服務(wù)器模式在操作過程中采取的是主動請求服務(wù)響應(yīng)的方式 ,如 圖 1 所示:客 戶 端 A客 戶 端 B服 務(wù) 器 : 監(jiān) 聽局 域 網(wǎng)請求A請求B響應(yīng)B響應(yīng)A請 求 A響應(yīng)A響應(yīng)B請求B 圖 1 客戶端服務(wù)器模式 Socket 介紹 Socket 是建立 在傳輸層協(xié)議 (主要是 TCP 和 UDP)上的一種套接字規(guī)范,最初是由美國加州 Berkley 大學(xué)提出,它定義兩臺計(jì)算機(jī)間進(jìn)行通信的規(guī)范(也是一種編程規(guī)范),如果說兩 臺計(jì)算機(jī)是利用一個(gè) “通道” 進(jìn)行通信,那么這個(gè) “ 通道 ” 的兩端就是兩個(gè)套接字。套接字屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺安裝了 TCP 協(xié)議軟件和實(shí)現(xiàn)了套接字規(guī)范的計(jì)算機(jī)之間的通信成為可能。 微軟的 Windows Socket 規(guī)范 (簡稱 Winsock)對 Berkley 的套接字規(guī)范進(jìn)行了擴(kuò)展,利用標(biāo)準(zhǔn)的 Socket 的方法,可以同任何平臺上的 Socket 進(jìn)行通信;利用其擴(kuò)展,可以更有效地實(shí)現(xiàn)在 Windows 平臺上計(jì)算機(jī)間的通信。 Socket 減輕了編寫計(jì)算機(jī)間通信軟件的難度; 標(biāo) 準(zhǔn)的 Socket 的應(yīng)用程序 框架如下: Server 方: Socket()[ 新建一個(gè) Socket]-- Bind()[ 同服務(wù)器地址 綁 定 ]--Listen() -- Accept()-- block wait-- read()[接受消息,在 windows 平臺中,方法為 send(TCP),或者是 send to(UDP)]--處理服務(wù)請求-- Write()[發(fā)送消息 ],在 windows 平臺中,方法為 send(TCP), 或者為 send to(UDP)。 Client 方相對簡單: Socket()-- Connect()[通過一定的 port 連接特定的 服務(wù)器,這是與服務(wù)器建立連接 ]-- Write()-- Read()。 Socket 可以是基于 TCP 的,也可以是基于 UDP,同時(shí) Socket 甚至建立在其他的協(xié)議,比如 IPX/SPX, DECNet 等。在新建一個(gè) Socket 時(shí),可以指定新建何類Socket。 Bind()用來同服務(wù)器的地址 綁定 ,如果一個(gè)主機(jī)只有一個(gè) IP 地址,實(shí)際上 綁 定的作用就相對多余了。 Listen()開始監(jiān)聽網(wǎng)絡(luò), Accept()用于接受連接,其返回值是保持同客戶機(jī)聯(lián)系的 Socket。 在 Delphi 中,其底層的 Socket 也應(yīng)該是 Windows 的 Socket。 Inprise 在 Delphi中對 Windows Socket 進(jìn)行了有效的封裝,使得用戶可以很方便地編寫網(wǎng)絡(luò)通信程序。 Socket 系統(tǒng)調(diào)用包括創(chuàng)建 Socket、 將創(chuàng)建的 Socket 與本地端口綁定 、 建立Socket 連接服務(wù)器 、 監(jiān)聽是否有連接 、 請求數(shù)據(jù)的可控緩沖發(fā)送 和 可控緩沖接收 ,到最后 關(guān)閉 Socket。 首先在服務(wù)器方,利用 socket()函數(shù)建立流式套接字,返回套接字號 s,接著利用 bind()函數(shù)將套接字 s 與本地地址綁定,緊接著利用 listen()函數(shù)通知 TCP,監(jiān)聽客戶方,服務(wù)器準(zhǔn)備接收連接 ,沒有連接的話,服務(wù)器方通過 closesocket()關(guān)閉套接字 s,服務(wù)結(jié)束。有連接的話,在客戶方,通過 socket()函數(shù)建立流式套接字 s,此時(shí)在服務(wù)器方,建立連接,通過 accept()返回,得到新的套接字 ns,客戶方通過 connect()將套接字 s 與遠(yuǎn)程地址連接 ,此時(shí)服務(wù)器方 /客戶方在 ns/s 上讀 /寫數(shù)據(jù),直到交換完成。交換完成后,服務(wù)器方 /客戶方關(guān)閉套接字 ns/s,最后服務(wù)器方通過 closesocket()關(guān)閉最初套接字 s,服務(wù)結(jié)束。 具體流程如圖 2 所示: 服 務(wù) 器 方接 收 連 接 A c c e p t ( ) 等 待 客 服 端的 連 接 監(jiān) 聽 連 接 請 求 l i s t e n ( )與 本 地 地 址 綁 定 b i n d ( )建 立 服 務(wù) 器 s e r v e r s o c k e t ( )建 立 連 接 C l i e n t C o n n e c t ( )接 收 / 發(fā) 送 數(shù) 據(jù) r e c v ( )/ s e n d ( )關(guān) 閉 連 接 c l o s e s o c k e t ( )關(guān) 閉 服 務(wù) 器客 戶 端 方建 立 客 戶 端 c l i e n t s o c k e t ( )與 遠(yuǎn) 程 地 址 連 接 c o n n e c t ( )R e m o t e A d d r e s s發(fā) 送 / 接 收 數(shù) 據(jù) s e n d ( ) / r e c v ( )關(guān) 閉 連 接 c l o s e s o c k e t ( ) 圖 2 面向連接的套接字的系統(tǒng)調(diào)用 流程 圖 系統(tǒng)需求分析 局域網(wǎng)聊天程序的實(shí)現(xiàn)主要為局域網(wǎng)內(nèi)的計(jì)算機(jī)提供交流的平臺。完成一個(gè)基于服務(wù)器和客戶端的局域網(wǎng) 通訊軟件,類似于聊天室,可進(jìn)行注冊、登錄、 系統(tǒng)信息記錄、聊天等功能 。 用戶容易使用,便于管理。 系統(tǒng)設(shè)計(jì)目標(biāo) 局域網(wǎng)聊天程序的實(shí)現(xiàn), 主要 為 需要局域網(wǎng)內(nèi)聊天的用戶設(shè)計(jì)一個(gè)聊天平臺; 本系統(tǒng)的目的是為了讓 局域網(wǎng)內(nèi)的計(jì)算機(jī)用戶如寢室、辦公室 能隨時(shí)隨地通過網(wǎng)絡(luò)進(jìn)行 交流 。 局域網(wǎng)聊天程序 的設(shè)計(jì)目標(biāo)為一個(gè)高性能的,易于使用的,面向局域網(wǎng) 的 即時(shí)信息軟 件。最 終的 程序 應(yīng)具有如下功能 : ? 客戶端 使用 簡便 , 服務(wù)器端運(yùn)行穩(wěn)定。客戶端與服務(wù)器端可運(yùn)行在多種 系統(tǒng)平臺,具有良好的兼容性能。 ? 客戶端與服務(wù)器端功能獨(dú)立,可獨(dú)立運(yùn)行在不同的計(jì)算機(jī)上或運(yùn)行在同一臺計(jì)算 機(jī)上 ,具有最大的靈活性。 ? 能夠 進(jìn)行 注冊 ,設(shè)置自己的用戶名和密碼, 自動更新其他用戶的名單。 ? 選擇特定用戶并與其交談 ,還可以向在所有在線的用戶發(fā)送消息 。 ? 服務(wù)器能夠記錄所有用戶的登錄、退出、注冊等系統(tǒng)消息。 系統(tǒng)運(yùn)行 環(huán)境 ? 硬件環(huán)境: CPU: Intel PentiumM 725 內(nèi)存: 512 MB 硬盤: 60 G ? 軟件環(huán)境: 操作系統(tǒng): Microsoft Windows XP Professional 應(yīng)用軟件: Delphi + Database Desktop 系統(tǒng)開發(fā)環(huán)境 本系統(tǒng)開發(fā)環(huán)境采用 Borland 公司新推出的 Delphi 是全新的可視化編程環(huán)境 ,為我們提供了一種方便、快捷的 Windows應(yīng)用程序開發(fā)工具。它使用了 Microsoft Windows 圖形用戶界面的許多先進(jìn)特性和設(shè)計(jì)思想 ,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z言 (ObjectOriented Language)、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫技術(shù)。對于廣大的程序開發(fā)人員來講 ,使用 Delphi 開發(fā)應(yīng)用軟件 ,無疑會大大地提高編程效率 ,而且隨著應(yīng)用的深入 ,您將會發(fā)現(xiàn)編程不再是枯燥無味的工作 ——Delphi 的每一個(gè)設(shè)計(jì)細(xì)節(jié) ,都將帶給您一份欣喜 。 3 局域網(wǎng)聊天程序系統(tǒng)設(shè)計(jì) 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)采用 C/S 結(jié)構(gòu), 最重要的特點(diǎn)是非對等相互作用 ,即客戶與服務(wù)器處于不平等的地位 ,服務(wù)器擁有客戶所不具備的硬軟件資源 ,客戶和服務(wù) 器分別是服務(wù)的請求者和提供者。 網(wǎng)絡(luò)中各個(gè)機(jī)器的資源是不平等的 ,網(wǎng)絡(luò)的真正目的就是共享這些不均 等資源 源 ,非對 等相互作用特點(diǎn)也正好體現(xiàn)和適應(yīng)了客觀現(xiàn)實(shí)中資源的不均等現(xiàn)象。 局域網(wǎng) 上不同主機(jī)進(jìn)程間通信完全是異步的 ,通信時(shí)機(jī)具有隨機(jī)性 ,所以必須 用這種 為通信雙方的數(shù)據(jù)交換提供同步的機(jī)制 。 數(shù)據(jù)庫設(shè)計(jì) 局域網(wǎng)聊天程序的 數(shù)據(jù)庫設(shè)計(jì) (Database Design)把系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息。 設(shè)計(jì)數(shù)據(jù)庫應(yīng)該具備數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設(shè)計(jì)技術(shù) , 計(jì)算機(jī) 科學(xué)的基礎(chǔ)知識和 程序設(shè)計(jì) 的 方法和技巧 及 軟件工程 的原理和方法應(yīng)用領(lǐng)域的知識 。 根據(jù) 局域網(wǎng)聊天程序系統(tǒng) 的一般 要求,通過對整個(gè)系統(tǒng)運(yùn)行過程和數(shù)據(jù)流程分析,得出本系統(tǒng)的實(shí)體表:用戶基本信息表。本系統(tǒng)設(shè)計(jì)了一個(gè)簡單的數(shù)據(jù)庫包括 username 和 password 兩個(gè)字段。用戶基本信息表如表 1: 表 1 用戶基本信息表: DB_USER 中文名稱 字段名 類型 長度 是否允許空 備注 用戶名 username nvarchar 10 not null PK 密碼 password nvarchar 100 not null 客戶端服務(wù) 器功能 設(shè)計(jì) 客戶端主要功能 有用戶注冊、用戶登錄、在線用戶列表、 消息收發(fā)模塊。而消息收發(fā)模塊又分為公聊和私聊兩種??蛻舳说墓δ苣K 如圖 3 所示; 局 域 網(wǎng) 聊 天 程 序 客 戶 端在 線 用 戶 列 表用 戶 登 錄用 戶 注 冊消 息 收 發(fā) 圖 3 客戶端功能模塊 圖 服務(wù)器主要功能 有 消息處理 、系統(tǒng)消息、在線用戶列表、監(jiān)聽狀態(tài)控制,如圖 4 所示 : 局 域 網(wǎng) 聊 天 程 序 服 務(wù) 器監(jiān) 聽 狀 態(tài) 控 制在 線 用 戶 列 表系 統(tǒng) 消 息消 息 處 理 圖 4 服務(wù)器功能模塊 圖 客戶端設(shè)計(jì) 客戶 端 設(shè)計(jì)時(shí)以用戶使用為出發(fā)點(diǎn),功能 分登錄、注冊、輸入服務(wù)器 IP、聊天、用戶列表和關(guān)于這幾個(gè)詳細(xì)模塊 。 首先設(shè)計(jì)一個(gè)連接模塊,即輸入服務(wù)器 IP 后看能否連接到服務(wù)器,要能先連接到服務(wù)器才能再進(jìn)行登錄注冊等操作,這樣做可以讓用戶知道服務(wù)器是否在運(yùn)行。連接到服務(wù)器后,進(jìn)行注冊,登錄時(shí)系統(tǒng)要能 根據(jù)用戶輸入的用戶名和密碼 判斷該用戶是否為合法用戶;如果用戶輸入的用戶名或密碼錯(cuò)誤,系統(tǒng)將給出相應(yīng)的提示,并要求用戶進(jìn)行注冊或重新登錄;如果用戶輸入的用戶名和密碼正確, 可進(jìn)行聊天操作。這里需要說明的是,在連接到服務(wù)器、登錄、注冊等程序沒有完成時(shí)聊天模塊和用戶列表模塊設(shè)計(jì)成非激活狀態(tài),登錄成功后再激活這兩個(gè)模塊。用戶列表只是顯示在 線用戶,當(dāng)有新用戶上線時(shí)用戶列表動態(tài)刷新。具體流程圖如圖 5 所示 : 開 始連 接 到 服 務(wù) 器登 錄獲 得 在 線 用 戶列 表聊 天
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1