程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 基於TCP/IP的局域網多用戶通信(2)

基於TCP/IP的局域網多用戶通信(2)

編輯:VC++

作者:袁 淵(華東船舶工業學院機械系)
轉載請與作者聯系

二、實現方案

整體方案的構思圖如下:



  通過上圖,我們可以看到整個系統分為三個相關的程序,即注冊/登陸服務器、通信服務器以及用戶程序。其中,注冊/登陸服務器負責用戶的注冊、登陸以及數據庫管理;通信服務器負責完成數據轉發以及共享數據結構的管理;用戶端則完成注冊、登陸和通信功能。為什麼要把服務器分為兩部分呢?主要是考慮到服務器的用戶容量問題,以及對通信服務器的保護,只有在通過驗證後,用戶在能與通信服務器連接。

  由此可見,整個系統通信任務的實現還是很復雜的。用戶端首先必須注冊自己,等待注冊成功;然後根據自己的注冊信息進行服務器登陸,登陸成功後才能與通信服務器連接,進行用戶間通信。

  注冊/登陸服務器接收到用戶端的信息後,首先判斷是注冊信息還是登陸信息。如果是注冊信息,則將該數據按預定的格式寫入數據庫,然後返回注冊成功的消息,期間有任何異常產生,服務器都會返回注冊失敗消息,提示用戶重新注冊;如果是登陸信息,則從數據中提取用戶名和ID與數據庫中的內容進行比較,如果該用戶存在,則返回登陸成功消息,反之,返回登陸失敗消息。

  通信服務器所完成的主要功能是數據轉發,這是通過與圖中的共享數據結構進行交互完成的。服務器接收到用戶端發來的消息後,提取消息的一部分與共享數據結構存儲的內容進行比較,確定所要轉發的對象,最後通過多線程及其通信機制完成數據轉發。 下面,我們將分三部分來討論系統的具體實現過程。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved