激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

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

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

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

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

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

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

基于Perl的DoS工具設計與實(shí)現03-10

刑罰實(shí)現探析03-18

探析移動(dòng)網(wǎng)絡(luò )監控系統的設計與實(shí)現03-20

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

基于JSP網(wǎng)頁(yè)自動(dòng)生成工具的設計與實(shí)現03-18

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

探析園林的水景設計03-18

針對網(wǎng)絡(luò )應用層實(shí)現多播的探析03-28

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

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频