摘要: 使用Visual c#中的Socket編程的關鍵技術,以及多線程的知識實現一個簡單的網上交談工具,它提供的功能有:用戶登入、顯示所有當前的在線用戶、顯示進行交談的用戶資訊、與選定的用戶進行交談,並且支援私人交談。對於開發一般性的通信軟件,有一定的參考價值。
關鍵詞:Socket TCP協議 服務器 客戶端 線程
一、引言
隨着資訊技術的高速發展,網上交談已成爲人們學習和工作的重要手段,那麼如何設計合理的、人性化的網上交談工具就成爲當務之急。使用Visual c#中的Socket編程技術,以及多線程的知識可快速、方便地設計理想的網上交談工具。一個Socket通信無論功能多麼齊全、程序多麼複雜,其基本結構均應包括以下步驟:創建Socket對象,建立連接;開啟連接到Socket的輸入/輸出流;對Socket進行讀寫操作;關閉Socket套接字,關閉流。
二、TCP協議通信的流程
TCP協議是面向連接的協議,它的實現需要數據發送方和數據接收方建立數據通信連接,它的具體流程如下:
1.服務器端首先創建服務器套接字
2.服務器套接字監聽一個端口,等待客戶端的請求
3.客戶端創建一個客戶端套接字
4.客戶端向服務器發送連接請求
5.服務器確認與客戶端的連接
6.客戶端和服務器利用建立的連接進行通信
7.通信完畢後,客戶端和服務器關閉各自的連接
三、Socket編程簡介
1.利用Socket建立服務器程序
要用Socket建立一個TCP服務器程序,一般需要以下幾個步驟:
(1)創建一個服務器套接字,用IP位址和端口初始化服務器
(2)監聽服務器端口
(3)確認與客戶端的連接
(4)處理客戶端的請求並回應客戶端
(5)斷開客戶端的連接,釋放客戶端的連接
(6)關閉服務器,釋放服務器連接
2.利用Socket建立客戶端程序
要用Socket建立一個TCP客戶端程序,一般需要以下幾個步驟:
(1)創建客戶端套接字
(2)連接服務器
(3)得到與服務器通信的流通道
(4)向服務器發送數據
(5)接收從服務器發回的數據
(6)斷開連接
四、設計方案
1.服務器端的設計
服務器端管理着交談任務,它維持着一張當前在線用戶的列表,轉發用戶發送來的資訊,主要功能如下:
監聽本機IP位址中的一個指定的端口。
當有客戶端向該端口發出請求時,服務器程序立即建立一個與該客戶端的連接並啓動一個新的線程來處理該客戶端的所有請求。
根據客戶端發送來的各種不同的請求,執行相應的操作,並將處理結果返回給該客戶端。服務器能識別4種請求命令:CONN(建立新的連接)、CHAT(聊天)、PRIV(私聊)和EXIT(離開),服務器接收ASCII字元資訊,用“|”分隔資訊的各個部分,一條資訊包含一條命令,一個或多個資訊參數。
2.客戶端的設計
客戶端應用程序包含用戶登入視窗和用戶交談的主視窗,它允許用戶登入到服務器,可以向服務器發送資訊,同時可以接收從服務器返回的資訊,設計的主要功能如下:
向遠程服務器發送連接請求。
得到服務器程序的確認後,建立與服務器的連接,並獲得與服務器交互的流通道(NetworkStream)。
透過網絡流通道與服務器端的程序進行數據通信。向服務器發送服務器能夠識別的以上4種命令請求,同時也接收服務器發回的命令。客戶端能夠識別的命令有JOIN(通知當前在線用戶有新的.用戶進入聊天室)、LIST(更新當前在線用戶)和QUIT(關閉客戶端程序)。客戶端程序接收ASCII字元資訊,用“|”分隔資訊的各個部分,一條資訊包含一條命令,一個或多個資訊參數。 五、解決方案
1.服務器端的實現
探析網上交談工具的設計與實現
學問君
人氣:1.07W
最近更新