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

正文內(nèi)容

畢業(yè)設(shè)計---局域網(wǎng)即時通信軟件設(shè)計(編輯修改稿)

2026-01-06 18:04 本頁面
 

【文章內(nèi)容簡介】 ,這樣可以方便編程人員,提高效率。 : C具有強(qiáng)大的數(shù)據(jù)庫管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗口,可以直接建立或處理 Microsoft SQL Server 2021 Express 格式的數(shù)據(jù)庫,并提供了強(qiáng)大的數(shù)據(jù)存儲和檢索功能。同時, C還能直接編輯和訪問其他外部數(shù)據(jù)庫,如: DATABASE, FoxPro, Paradox等,這些數(shù)據(jù)庫格式都可以用 C 編輯和處理。 C提供開放式數(shù)據(jù)連接,即 功能, 可通過直接訪問或建立連接的方式使用并操作后臺大型網(wǎng)絡(luò)數(shù)據(jù)庫,如 SQL Server, Oracle 等。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語言 SQL 數(shù)據(jù)標(biāo)準(zhǔn),直接訪問服務(wù)器上的數(shù)據(jù)庫,還提供了簡單的面向?qū)ο蟮膸觳僮髦噶詈投嘤脩魯?shù)據(jù)庫訪問的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫的 SQL 的編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫提供了 SQL 網(wǎng)絡(luò)接口,可以在分布式環(huán)境中快速而有效地實(shí)現(xiàn)客戶 /服務(wù)器(client/server)方案。 (DDE)功能: 利用動態(tài)數(shù)據(jù)交換 (Dynamic Data Exchange)技術(shù),可以把一種應(yīng) 用程序中的數(shù)據(jù)動態(tài)地鏈接到另一種應(yīng)用程序中,使兩種完全不同的應(yīng)用程序建立起一條動態(tài)數(shù)據(jù)鏈路。當(dāng)原始數(shù)據(jù)變化時,可以自動更新鏈接的數(shù)據(jù)。 C提供了動態(tài)數(shù)據(jù)交換的編程技術(shù),可以在應(yīng)用程序中與其他 Windows 應(yīng)用程序建立動態(tài)數(shù)據(jù)交換,在不同的應(yīng)用程序之間進(jìn)行通信。 (OLE)功能: 對象的鏈接與嵌入 (OLE)將每個應(yīng)用程序都看作是一個對象 (object),將不同的對象鏈接 (link)起來,再嵌入 (embed)某個應(yīng)用程序中,從而可以得到具有聲音、影像、圖像、動畫、文字等各種信息的集合式的文件 。利用 OLE 技術(shù),可以方便地建立復(fù)合式文檔(pound document),這種文檔由來自多個不同應(yīng)用程序的對象組成,文檔中的每個對象都與原來的應(yīng)用程序相聯(lián)系,并可執(zhí)行與原來應(yīng)用程序完全相同的操作。 Visual Basic就采用了 OLE 技術(shù)。 (DLL)功能: C 是一種高級程序設(shè)計語言,不具備低級語言的功能,對訪問機(jī)器硬件的操作不太容易實(shí)現(xiàn)。但它可以通過動態(tài)鏈接庫技術(shù)將 C/C++或匯編語言編寫的程序加入到 C 應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語言編寫的函數(shù)。此外,通過動態(tài)鏈 接庫,還可以調(diào)用 Windows 應(yīng)用程序接口 (API)函數(shù),實(shí)現(xiàn) SDK 所具有的功能。 主要設(shè)計功能 本程序需要具備以下功能: 用戶密碼驗(yàn)證功能; 與在線用戶進(jìn)行即時通信交流; 保存與離線好友交流文字信息功能; 顯示所有好友在線和離線功能; 查詢聊天記錄功能; 數(shù)據(jù)庫設(shè)計 在 Mysql 中建立名稱為 client 的數(shù)據(jù)庫,并在此數(shù)據(jù)庫中創(chuàng)建 chatlog、 class、 user三個數(shù)據(jù)表分別用來存放聊天記錄、存放班級信息和存放用戶 信息。 以下為對各個數(shù)據(jù)表的詳細(xì)說明。 class 表簡介 class 數(shù)據(jù)表設(shè)計視圖如表 21 所示: 表 21 class 表 classBM classNAME 0541 文通 0541 0542 文通 0542 0441 文通 0441 0442 文通 0442 0431 文通 0431 如上 表 所示, class 表共有 classBM、 classNAME 兩個字段,分別存放班級編碼和班級名稱,并且必須一一對應(yīng)。在設(shè)計程序中的好友列表中,作為所有學(xué)生的根節(jié)點(diǎn)。在好友列表顯示時,可根據(jù)學(xué)生所屬班級進(jìn)行 方便快速的查找。所有學(xué)生必須只屬于一個班級編碼下,否則不能正常顯示。此表由服務(wù)器所在電腦維護(hù)。 user 表簡介 user 數(shù)據(jù)表設(shè)計視圖如表 22所示: 表 22 user 表 id name password classBM 1 Tom 1111 0542 2 Key 2222 0541 3 Yuki 3333 0541 4 張三 4444 0431 5 李四 5555 0442 user 表共有 id、 name、 password、 classBM 四個字段,分表用來存放用戶 id、姓名 、密碼、班級代碼。 id字段為此數(shù)據(jù)表主鍵,不允許重復(fù),作為用戶的唯一標(biāo)示??勺詣由?。 name 字段為學(xué)生的姓名信息,可通過它登錄系統(tǒng)。 password 字段為此用戶的密碼,最多可維護(hù)進(jìn) 15 個字符。在系統(tǒng)登錄時,填寫的姓名與密碼必須同時驗(yàn)證成功才能正確的登錄系統(tǒng)。 classBM 字段為學(xué)生所屬班級代碼,每條學(xué)生信息必須維護(hù)此字段,否則無法在用戶列表中正確顯示。 chatlog 表簡介 chatlog 表視圖如表 23所示: 表 23 chatlog 表 FROMUSER TOUSER DATETIMEN LOGS Key 張三 09053003234351 你好 張三 Key 09053005234521 哈嘍 Tom 王二 09053008443213 測試 1 Tom 張三 09053008452313 測試 2 王二 Key 09053009553234 測試 3 Yuki 王二 09053002113452 測試 4 張三 Tom 09053001235252 測試 5 chatlog 表共有 FROMUSER、 TOUSER、 DATETIMEN、 LOGS 四字段,分表存放聊天記錄的發(fā)送方、接 收方、時間、內(nèi)容。 FROMUSER 字段為聊天記錄發(fā)送方姓名,與表 2 中 name 字段外鍵關(guān)系,所以必須為 user中用戶名稱一致。 TOUSER 字段為聊天記錄接收方姓名,與表 2 中 name 字段外鍵關(guān)系,所以必須為 user中用戶名稱一致。 DATETIMEN 字段為聊天記錄在服務(wù)器中轉(zhuǎn)的時間(精確到毫秒),此字段與 FROMUSER、TOUSER 字段共同作為此表的主鍵,保證了每條記錄主鍵不沖突。 LOGS 此字段用以存放聊天記錄,字段數(shù)據(jù)類型為 TEXT,所以可輕松用于可進(jìn)行大數(shù)據(jù)編輯。 基本實(shí)現(xiàn)原理 WINSOCK 接口 WINSOCK 標(biāo) 準(zhǔn) 定 義 了 一 個 DLL 接 口 , 通 常 叫 做 或者。無論機(jī)器上安裝了哪一個 DLL,只要函數(shù)的名字,參數(shù)含義以及最終的功能是相同的,應(yīng)用程序就可以調(diào)用這些函數(shù)。在插口編程里一個重要的概念就是一個插口的端口。 局域網(wǎng)內(nèi) 的每一個站點(diǎn)都有一個數(shù)字地址稱為 IP 地址,通常是由 “ .” 分開的四個數(shù)。在機(jī)器上運(yùn)行的程序可以隨心所欲地用 端口 與其他機(jī)器進(jìn)行通信。多數(shù) 端 口的工作是基于連接的:兩個程序在每一端用一個 端 口形成一個連接,然后沿著該連接收發(fā)數(shù)據(jù)。有些應(yīng)用程序傾 向無連接地發(fā)送,但是這些數(shù)據(jù)的到達(dá)是沒有保障的。 實(shí)際上是作為 WinSock 應(yīng)用程序和 TCP/IP 協(xié)議棧之間的中間層。用戶的應(yīng)用程序告訴 需要做什么, TCP/IP協(xié)議棧,由 TCP/IP 協(xié)議棧傳送到網(wǎng)絡(luò)。但是重要的事情是用戶必須注意用戶使用的 必須和 TCP/IP 的版本號一致。 客戶機(jī) /服務(wù)器模式 由于 Winsock 支持多種協(xié)議上的網(wǎng)絡(luò)程序開發(fā), 比如 TCP、 UDP、和 IP 等等。由于這次課程設(shè)計 是實(shí)現(xiàn)點(diǎn)到點(diǎn)的可靠連接,所以在此使用 TCP 連接方式。在這個連接中,雙方分為客戶和服務(wù)器,他們各自的功能不同。 客戶機(jī)一方, TCP/IP 應(yīng)用程序功能如下: ( 1) 打開通信信道(申請一套接字),并連接到服務(wù)器在主機(jī)的保留端口,該端口對應(yīng)服務(wù)器的 TCP/IP 進(jìn)程。 ( 2) 向服務(wù)器發(fā)出請求報文,等待接收應(yīng)答。 ( 3) 從服務(wù)器方收到最終應(yīng)答結(jié)果,或在不再請求時關(guān)閉信道并終止客戶機(jī)進(jìn)程。 服務(wù)器一方, TCP/IP 應(yīng)用程序動作如下: ( 1) 打開通信信道(申請一套接字),通知本地主機(jī)在某一保留端口接收客戶機(jī)請求。 ( 2) 等待客戶請求到達(dá)指定端口。 ( 3) 接收到請求,啟動一新進(jìn)程處理用戶請求,同時釋放舊進(jìn)程以響應(yīng)新的客戶請求,一旦服務(wù)完成,關(guān)閉新進(jìn)程與客戶的通信鏈路。 ( 4) 繼續(xù)等待客戶機(jī)請求。 ( 5) 如果不想響應(yīng)客戶機(jī)請求,關(guān)閉服務(wù)器進(jìn)程。 綜上所述, TCP/IP 應(yīng)用中的服務(wù)器程序必須先于客戶機(jī)進(jìn)程啟動,直到對客戶機(jī)的響應(yīng)結(jié)束或強(qiáng)迫終止。其面向連接的應(yīng)用程序流程圖如圖 21。 圖 21 C/S 模式 二者的結(jié)合( DBA) C 的連接 : C 提供了與底層數(shù)據(jù)庫系統(tǒng)緊密的連接。 它 支持不同的 關(guān)系數(shù)據(jù)庫管理系統(tǒng)并充分發(fā)揮每一個數(shù)據(jù)庫的特長 , 生成獨(dú)立應(yīng)用或脫離服務(wù)器運(yùn)行 的 應(yīng)用 程序。 C 連接數(shù)據(jù)庫的方式有兩種: 方式一, 通過使用 C 的 DATA 控件 ;方式二, 通過使用由 C 提供的專用的直接與數(shù)據(jù)庫相連的接口 。 驅(qū)動與 DATA 控件 的橋梁作用: 使用 Mysql 公司的 .NET 驅(qū)動包 ,并引用驅(qū)動包內(nèi)已編譯好 Mysql 類組件,便可以更方便的在 VisualStudio2021 中操作 Mysql 數(shù)據(jù)庫。 DATA 在數(shù)據(jù)庫中的信息與將信息顯 示給用戶看的 C 程序之間架起了一座橋梁。我們可以設(shè)置 DATA 控件的各個屬性,告訴它要調(diào)用 哪 個數(shù)據(jù)庫的哪個部分。缺省情況下, DATA控件根據(jù)數(shù)據(jù)庫中的一個或多個數(shù)據(jù)表建立一個 dynasettype(動態(tài)集合)類型的記錄集合。一個記錄集合是動態(tài)的也就意味著,當(dāng)原來的數(shù)據(jù)表中的 內(nèi) 容改變了以后,該記錄集合中的記錄也會隨之改變。 DATA 控件還提供了用來瀏覽不同記錄的各種跳轉(zhuǎn)按鈕。將 DATA 控件放置在窗體中之后,我們還必須在該控件與要處理的數(shù)據(jù)庫之間建立聯(lián)系。 客戶端安裝在與服務(wù)器同一局域網(wǎng)的任意一臺計算機(jī)上,用戶通過正確用戶名與密碼便可登錄,并進(jìn)行與服務(wù)器或者其他客戶端的即時通信。 下面將對客戶端的各功能進(jìn)行介紹: 用戶登陸功能 登陸界面如 圖 31 所示: 圖 31 登陸界面圖 賬號文本框:填寫用戶名; 密碼文本框:填寫用戶密碼; 服務(wù)器 IP框:填寫服務(wù)器所在計算機(jī)的局域網(wǎng) IP 地址; 服務(wù)器 端 口文本框:填寫服務(wù)器所開此服務(wù)的端口號,本系統(tǒng)缺省默認(rèn)為服務(wù)器的“ 1234”端口。 連接服務(wù)器 使用類: 為 TCP 網(wǎng)絡(luò)服務(wù)提供客戶端連接,類: 提供用于網(wǎng)絡(luò)訪問的基礎(chǔ)數(shù)據(jù)流。聲明為全局變量代碼如下: TcpClient tcpCli。//與服務(wù)器的連接 (客戶端 ) private NetworkStream stream。//與服務(wù)器數(shù)據(jù)交互的流通道 將用戶名、密碼、服務(wù)器 IP、服務(wù)器端口號填寫完成后,點(diǎn)擊登陸按鈕,將實(shí)例化TcpClient 類的新實(shí)例,并使用 指定的 IP 地址與端口號將客戶端連接到 TCP 主機(jī)。代碼如下: tcpCli = new TcpClient()。 ((), ())。//連接遠(yuǎn)程服務(wù)器 其中 IP文本框內(nèi)容 。 然后返回用于發(fā)送和接收數(shù)據(jù)的 NetworkStream: stream = ()。 開啟新線程用于接收服務(wù)器發(fā)回的消息 在計算機(jī)的同一線程內(nèi)同時處理發(fā)出與接收的消息是沒有保證的,所以編寫 Incept()函數(shù)來接受服務(wù)器的請求。并開啟另外一個線程,用于接收服務(wù)器發(fā)回的消息,并作出相應(yīng)的處理。聲明新線程,并啟動,代碼如下: ThreadStart incept = new ThreadStart()。 Thread thread = new Thread(incept)。 ()。 向服務(wù)器發(fā)送用戶名與密碼信息 因?yàn)橛糜诰W(wǎng)絡(luò)訪問的基礎(chǔ)數(shù)據(jù)流的數(shù)據(jù)類型為字符編碼,所以將用戶名與密碼轉(zhuǎn)化為字符編碼數(shù)組,然后寫入基礎(chǔ)數(shù)據(jù)流 NetworkStream,服務(wù)器便能接收到消息。 創(chuàng)建字符串,以“ CON”作為前綴,并以“ |”符號將用戶名與密碼隔開,以便服務(wù)器進(jìn)行分析,代碼如下: string userName = ()。 string cmd = CON| + userName+ | + + |。 消息格式為:“ CON|用戶名 |密碼 |”。 然后將此字符串轉(zhuǎn)化為字符編碼數(shù)組,并寫入 NetworkStream,代碼如下: Byte[] outbytes = . GetBytes(())。 (ou
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1