<pre id="p1pz5"><delect id="p1pz5"></delect></pre>
<output id="p1pz5"><delect id="p1pz5"><listing id="p1pz5"></listing></delect></output>

<p id="p1pz5"></p>

<pre id="p1pz5"></pre>

<p id="p1pz5"></p>
<pre id="p1pz5"><output id="p1pz5"></output></pre>
<pre id="p1pz5"><output id="p1pz5"><delect id="p1pz5"></delect></output></pre><pre id="p1pz5"></pre>

<p id="p1pz5"><output id="p1pz5"></output></p>

<p id="p1pz5"><output id="p1pz5"><menuitem id="p1pz5"></menuitem></output></p>

<output id="p1pz5"></output>
<pre id="p1pz5"><output id="p1pz5"></output></pre>

<p id="p1pz5"><delect id="p1pz5"><menuitem id="p1pz5"></menuitem></delect></p>

<p id="p1pz5"></p>
<p id="p1pz5"><output id="p1pz5"></output></p>
<p id="p1pz5"><output id="p1pz5"></output></p>

<p id="p1pz5"><output id="p1pz5"></output></p>
<p id="p1pz5"></p>

<output id="p1pz5"><delect id="p1pz5"></delect></output>

<p id="p1pz5"></p>

<p id="p1pz5"></p>

<p id="p1pz5"></p>
<p id="p1pz5"><delect id="p1pz5"><address id="p1pz5"></address></delect></p>

<pre id="p1pz5"></pre>

<pre id="p1pz5"><output id="p1pz5"><delect id="p1pz5"></delect></output></pre>

畢業設計網
JSP,JAVA | python | android,安卓 | PHP | 微信小程序 | asp.net|C# | VB | VC++ | 課程設計 | asp類 |

基于TCP局域網聊天軟件的設計與實現

在VB和數據庫互聯技術的基礎上,設計一套局域網聊天軟件,主要實現:1)系統采用Socket技術實現網絡通訊;2)系統主要實現用戶登錄、聊天等功能;3)支持多用戶通信;4)支持文件傳輸。
本論文的研究內容主要包括以下幾個方面:
1、對結構化設計方法和面向對象的設計開發方法進行了研究和比較,本課題采用的是更為先進的面向對象設計開發方法;
2、研究VB技術。
3、設計并實現局域網聊天系統的基本功能。

全文共分為六章,各章內容分別如下:
第一章緒論。闡述了本課題的研究背景和研究意義及其本文的研究內容和組織結構。
第二章系統使用技術概述。本章首先介紹了VB技術,接著對TCP/IP技術和Socket等技術進行了相關介紹,對開發工具進行簡單介紹。
第三章局域網聊天系統的需求分析。本章首先對系統進行了可行性研究,指出了系統要解決的問題,并提出系統的設計思想;接下來對系統進行了需求分析,最后分析了系統的運行流程。
第四章總體設計和數據庫設計。在對系統進行架構設計后,本章首先對系統流程進行了詳細設計,最后對數據庫進行了概念設計和邏輯設計。
第五章系統的實現與維護。本章主要介紹了系統的實現基礎,然后按照系統結構,逐層分析并給出相關代碼示例,最后給出了部分頁面的顯示結果圖。
第六章總結中總結了本文的內容,并介紹了此次的主要工作及本系統存在的不足。
根據當前網絡的需求,網絡聊天越來越受各種網民所青睞。因此開發網絡聊天是相當有必要,而且在網站內增加聊天功能,它不僅可以提高網站的訪問量,同時可以留著訪客,更重要的是讓訪客透過它來實現實時的互相交流。
3.1 需求分析
聊天系統不外乎兩個方面,服務器端和客戶端。
首先來看一下服務器端的任務:
1、服務器端應當建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接(包括判斷沒有響應的連接超時)。
2、服務器端應當是一個信息發送中心,所有客戶端的信息都傳到服務器端,由服務器端根據要求分發信息。
以上就是服務器端最主要的兩個任務。
其次客戶端的任務包括:
1、與服務器端建立通信通道,向服務器端發送信息。
2、接收來自服務器的信息。
相對服務器而言,客戶端的任務較簡單,通過簡單分析服務器與客戶端的任務,可以知道,解決上述幾個問題,即完成了該聊天系統的核心。
3.2 系統功能設計
本程序是基于TCP/IP 協議, 采用服務器與客戶機模式, 選用VB程序設計語言來實現的。
1、 服務器端的運行過程可以簡化為:設置連接所用的端口;開始監聽此端口;接到請求后建立連接;可以發送和接收數據;結束后關閉服務器。
服務器端詳細過程:
1)、設置好LocalPort 屬性(即與客戶端連接所用的端口);
2)、用Listen 方法進入監聽狀態, 等待客戶端發連接請求;
3)、當客戶端發送了連接請求后, 服務器端產生Connection-Request 事件, 該事件得到一個參數requestID;
4)、服務器端用Accept方法接受客戶機的程序的requestID,此后服務器端就可以用SendData方法發送數據了;
5)、當服務器接收到客戶端發來的數據時, 產生DataArrival事件,在這個事件里,就可以用GetData方法接收數據了;
6)、如果遇到Close 事件, 則Close 方法會關閉TCP/IP 連接,也就是斷開連接了。
2、 客戶機端的運行過程可以簡化為: 設置服務器地址(即要連接的地址);設置連接時所用到的端口;發送連接請求;建立連接成功;可以發送和接收數據;結束后關閉客戶端。
客戶機端詳細過程:
1)、設置Remotehost 屬性(要連接的服務器地址);
2)、設置RemotePort 屬性(連接時所使用的端口);
3)、用Connect 方法向服務器發送連接請求;
4)、服務器接受請求后, 客戶端產生Connect 事件,就可以用SendData 方法發送數據了;
5)、當接收到服務端發來的數據時, 產生DataArrival 事件,該事件中用GetData 方法接收數據;
6)、如果接受到Close 事件,則用Close 方法關閉連接。
VB6.0 提供了Winsock 控件,要實現兩臺計算機的對話,可以通過Winsock 控件進行,而不需了解更多的數據傳輸細節,本程序就是通過Winsock 進行的。一個Winsock 控件可以建立與一個計算機的聯接, 服務器程序中首先設置一個Winsock 控件,將其索引值設為0,以便在運行時動態增減數值,這樣可以與多個客戶端進行對話。
3.3 系統分析與設計方案
3.3.1 聊天系統的總體設計
聊天系統的設計跟普通網站設計有著許多不同的地方,普通網站設計所考慮的因素,例如,普通網站需要對布局進入大量美化以及動畫設計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。因此,在設計聊天系統的過程中,必須要考慮好以下幾個設計要點:
1、實現思想
局域網聊天程序一般都是以服務器提供的服務端連接響應,使用者通過客戶端程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環境下,實現服務器端和客戶端兩部分程序。
2、服務器端工作流程
服務器端通過socket()系統調用創建一個Socket數組后(即設定接受連接客戶的最大數目),與指定的本地端口綁定bind(),就可以在端口進行偵聽listen()。如果有客戶端連接請求,則在數組中選擇一個空Socket,將客戶端地址賦給這個Socket。然后登錄成功的客戶就可以在服務器上聊天了。
3、客戶端工作流程
客戶端程序相對簡單,只需要建立一個Socket與服務器端連接,成功后通過這個Socket來發送和接收數據就可以了。

以上是一部分介紹,如需要完整的資料或者如不符合您的要求,請聯系技術人員qq:1587620172咨詢 微信:phpvisa66

上一篇:基于Linux下服務器集群技術初探
下一篇:C#網上電子商城的電子商務網站


版權所有 畢業設計網聯系qq:1587620172 © 2007-2022

蝴蝶中文综合娱乐网

<pre id="p1pz5"><delect id="p1pz5"></delect></pre>
<output id="p1pz5"><delect id="p1pz5"><listing id="p1pz5"></listing></delect></output>

<p id="p1pz5"></p>

<pre id="p1pz5"></pre>

<p id="p1pz5"></p>
<pre id="p1pz5"><output id="p1pz5"></output></pre>
<pre id="p1pz5"><output id="p1pz5"><delect id="p1pz5"></delect></output></pre><pre id="p1pz5"></pre>

<p id="p1pz5"><output id="p1pz5"></output></p>

<p id="p1pz5"><output id="p1pz5"><menuitem id="p1pz5"></menuitem></output></p>

<output id="p1pz5"></output>
<pre id="p1pz5"><output id="p1pz5"></output></pre>

<p id="p1pz5"><delect id="p1pz5"><menuitem id="p1pz5"></menuitem></delect></p>

<p id="p1pz5"></p>
<p id="p1pz5"><output id="p1pz5"></output></p>
<p id="p1pz5"><output id="p1pz5"></output></p>

<p id="p1pz5"><output id="p1pz5"></output></p>
<p id="p1pz5"></p>

<output id="p1pz5"><delect id="p1pz5"></delect></output>

<p id="p1pz5"></p>

<p id="p1pz5"></p>

<p id="p1pz5"></p>
<p id="p1pz5"><delect id="p1pz5"><address id="p1pz5"></address></delect></p>

<pre id="p1pz5"></pre>

<pre id="p1pz5"><output id="p1pz5"><delect id="p1pz5"></delect></output></pre>