久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

探析網(wǎng)上交談工具的設(shè)計與實現(xiàn)

時間:2024-08-25 20:26:04 電子商務(wù)畢業(yè)論文 我要投稿
  • 相關(guān)推薦

探析網(wǎng)上交談工具的設(shè)計與實現(xiàn)

摘要: 使用Visual c#.NET中的Socket編程的關(guān)鍵技術(shù),以及多線程的知識實現(xiàn)一個簡單的網(wǎng)上交談工具,它提供的功能有:用戶登錄、顯示所有當(dāng)前的在線用戶、顯示進行交談的用戶信息、與選定的用戶進行交談,并且支持私人交談。對于開發(fā)一般性的通信軟件,有一定的參考價值。

關(guān)鍵詞:Socket TCP協(xié)議 服務(wù)器 客戶端 線程
  
  一、引言
  隨著信息技術(shù)的高速發(fā)展,網(wǎng)上交談已成為人們學(xué)習(xí)和工作的重要手段,那么如何設(shè)計合理的、人性化的網(wǎng)上交談工具就成為當(dāng)務(wù)之急。使用Visual c#.NET中的Socket編程技術(shù),以及多線程的知識可快速、方便地設(shè)計理想的網(wǎng)上交談工具。一個Socket通信無論功能多么齊全、程序多么復(fù)雜,其基本結(jié)構(gòu)均應(yīng)包括以下步驟:創(chuàng)建Socket對象,建立連接;打開連接到Socket的輸入/輸出流;對Socket進行讀寫操作;關(guān)閉Socket套接字,關(guān)閉流。
  二、TCP協(xié)議通信的流程
  TCP協(xié)議是面向連接的協(xié)議,它的實現(xiàn)需要數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方建立數(shù)據(jù)通信連接,它的具體流程如下:
  1.服務(wù)器端首先創(chuàng)建服務(wù)器套接字
  2.服務(wù)器套接字監(jiān)聽一個端口,等待客戶端的請求
  3.客戶端創(chuàng)建一個客戶端套接字
  4.客戶端向服務(wù)器發(fā)送連接請求
  5.服務(wù)器確認(rèn)與客戶端的連接
  6.客戶端和服務(wù)器利用建立的連接進行通信
  7.通信完畢后,客戶端和服務(wù)器關(guān)閉各自的連接
  三、Socket編程簡介
  1.利用Socket建立服務(wù)器程序
  要用Socket建立一個TCP服務(wù)器程序,一般需要以下幾個步驟:
 。1)創(chuàng)建一個服務(wù)器套接字,用IP地址和端口初始化服務(wù)器
  (2)監(jiān)聽服務(wù)器端口
 。3)確認(rèn)與客戶端的連接
 。4)處理客戶端的請求并回應(yīng)客戶端
 。5)斷開客戶端的連接,釋放客戶端的連接
 。6)關(guān)閉服務(wù)器,釋放服務(wù)器連接
  2.利用Socket建立客戶端程序
  要用Socket建立一個TCP客戶端程序,一般需要以下幾個步驟:
 。1)創(chuàng)建客戶端套接字
 。2)連接服務(wù)器
  (3)得到與服務(wù)器通信的流通道
 。4)向服務(wù)器發(fā)送數(shù)據(jù)
  (5)接收從服務(wù)器發(fā)回的數(shù)據(jù)
 。6)斷開連接
  四、設(shè)計方案
  1.服務(wù)器端的設(shè)計
  服務(wù)器端管理著交談任務(wù),它維持著一張當(dāng)前在線用戶的列表,轉(zhuǎn)發(fā)用戶發(fā)送來的信息,主要功能如下:
  監(jiān)聽本機IP地址中的一個指定的端口。
  當(dāng)有客戶端向該端口發(fā)出請求時,服務(wù)器程序立即建立一個與該客戶端的連接并啟動一個新的線程來處理該客戶端的所有請求。
  根據(jù)客戶端發(fā)送來的各種不同的請求,執(zhí)行相應(yīng)的操作,并將處理結(jié)果返回給該客戶端。服務(wù)器能識別4種請求命令:CONN(建立新的連接)、CHAT(聊天)、PRIV(私聊)和EXIT(離開),服務(wù)器接收ASCII字符信息,用“|”分隔信息的各個部分,一條信息包含一條命令,一個或多個信息參數(shù)。
  2.客戶端的設(shè)計
  客戶端應(yīng)用程序包含用戶登錄窗口和用戶交談的主窗口,它允許用戶登錄到服務(wù)器,可以向服務(wù)器發(fā)送信息,同時可以接收從服務(wù)器返回的信息,設(shè)計的主要功能如下:
  向遠(yuǎn)程服務(wù)器發(fā)送連接請求。
  得到服務(wù)器程序的確認(rèn)后,建立與服務(wù)器的連接,并獲得與服務(wù)器交互的流通道(NetworkStream)。
  通過網(wǎng)絡(luò)流通道與服務(wù)器端的程序進行數(shù)據(jù)通信。向服務(wù)器發(fā)送服務(wù)器能夠識別的以上4種命令請求,同時也接收服務(wù)器發(fā)回的命令?蛻舳四軌蜃R別的命令有JOIN(通知當(dāng)前在線用戶有新的用戶進入聊天室)、LIST(更新當(dāng)前在線用戶)和QUIT(關(guān)閉客戶端程序)?蛻舳顺绦蚪邮誂SCII字符信息,用“|”分隔信息的各個部分,一條信息包含一條命令,一個或多個信息參數(shù)!∥、解決方案
  1.服務(wù)器端的實現(xiàn)
  服務(wù)器端是一個Windows窗體應(yīng)用程序,命名為ChatServer。當(dāng)運行服務(wù)器程序時,單擊服務(wù)器窗體上的“啟動”按鈕后,便啟動了服務(wù)器進程。為了使用Socket對象和Thread對象,在代碼文件中加入名字空間System.Net、System.Net..Socket、System..Threading的引用。
  在服務(wù)器端使用了多線程,每個用戶通過一個單獨的線程進行連接,當(dāng)服務(wù)器開始運行時,它就啟動一個線程等待客戶連接(在方法StartListen()中實現(xiàn))。當(dāng)接收到一個請求時,服務(wù)器立即啟動一個新的線程來處理和該客戶端的信息交互(在方法ServiceClient()中實現(xiàn))。自定義了一個Client類,它用于保存每個當(dāng)前在線用戶的用戶名和與服務(wù)器連接的Socket對象。當(dāng)Socket連接一旦建立,就馬上將其保存在一個Client對象中,以便讓每個用戶有自己的Socket,以后可以對不同用戶的Socket對象進行操作,實現(xiàn)與客戶端的數(shù)據(jù)交換。
  在服務(wù)器窗口中,單擊“啟動”按鈕,進入btnStart_Click處理程序。在該處理程序中,創(chuàng)建了一個服務(wù)器套接字并且監(jiān)聽本機IP地址中的一個指定的端口,同時啟動一個線程等待用戶連接(在方法StartListen()中實現(xiàn))。StartListen()方法是在新的進程中進行的操作,它主要用于當(dāng)接收到一個客戶端請求時,確認(rèn)與客戶端的連接,并且立即啟動一個新的線程來處理和該客戶端的信息交互(在方法ServiceClient()中實現(xiàn))。ServiceClient()方法用于和客戶端進行數(shù)據(jù)通信,包括接收客戶端的請求,根據(jù)不同的請求命令,執(zhí)行相應(yīng)的操作,并將處理結(jié)果返回到客戶端,此方法完成了服務(wù)器的主要的工作。SendToClient()方法實現(xiàn)了向客戶端發(fā)送命令請求的功能,它利用不同用戶保存的Socket對象,向?qū)?yīng)的用戶發(fā)送命令請求。GetUserList()方法實現(xiàn)了獲取當(dāng)前在線用戶列表的功能,它通過對clients數(shù)組的遍歷,獲取當(dāng)前在線用戶的用戶名,用字符串發(fā)回。
  2.客戶端的實現(xiàn)
  客戶端是一個Windows窗體應(yīng)用程序,命名為ChatClient。當(dāng)運行客戶端程序時,首先進入登錄界面,輸入用戶名,單擊“登錄”按鈕后,進入交談主窗口(命名為Login),在主窗口中可以向服務(wù)器發(fā)送信息,同時可以接收從服務(wù)器返回的信息。
  (1)Login.cs文件的實現(xiàn)
  Login.cs文件是登錄窗體的代碼文件,為了使用Socket對象,在代碼文件中加入名字空間System.Net 、System.Net..Socket的引用,它主要實現(xiàn)了創(chuàng)建客戶端套接字同時連接到服務(wù)器指定端口,把用戶名和創(chuàng)建的客戶端套接字傳遞給ChatClient窗體。

【探析網(wǎng)上交談工具的設(shè)計與實現(xiàn)】相關(guān)文章:

基于Perl的DoS工具設(shè)計與實現(xiàn)03-10

刑罰實現(xiàn)探析03-18

探析移動網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)03-20

探析校園網(wǎng)升級改造的設(shè)計與實現(xiàn)03-20

基于JSP網(wǎng)頁自動生成工具的設(shè)計與實現(xiàn)03-18

畢業(yè)生多媒體交互式自薦文件的設(shè)計與實現(xiàn)探析03-08

探析園林的水景設(shè)計03-18

針對網(wǎng)絡(luò)應(yīng)用層實現(xiàn)多播的探析03-28

探析“綠色酒店”的創(chuàng)建與實現(xiàn)可持續(xù)發(fā)展03-19