多功能聊天室-專案規劃實現圖

King_Alex發表於2014-08-17

網路程式設計專案規劃

最近在練習一個專案吧,大概給6天的時間來完成它,其中涉及到了資料庫的知識,網路程式設計,linux C等等,大考驗的時刻到了!我知道PM們的專案規劃圖絕對比我的高大上,但是我們也不能沒有自信對不?因此,我開始先分析我的專案它有什麼功能需求,需求分析完成了,OK,那麼專案應該大體上,又是靠什麼來實現的呢?這是一個最值得深究的問題!又有人說,那不是得用程式碼來實現嗎?等等,那樣你得寫到什麼時候?因而我們絕對不是先用程式碼去實現功能,而是把功能提取出來,瞭解他實現的過程!重要的是什麼?嘿嘿,讓我來告訴大家,最重要的是資料的協議,沒有好的資料協議,我們將會面臨的是無盡的BUG,因而協議是本文最終目的,當然非常希望大家通過留言,或者發郵件的方式來指出更加優化的地方,可以共同進步才是真的牛人!

附上我的郵箱:samuel_wnb@live.com

功能需求:

1、註冊

2、登陸

3、檢視登陸使用者

4、私聊

5、群發資訊

6、客戶端退出儲存資料

7、伺服器要備份資料

8、root許可權

踢出聊天室

禁言

解禁

登出

9、客戶端傳送表情

10、新增常用語

以上是我專案的功能,下面是我對功能的具體分析,涉及到網路程式設計,嗯,在做專案的過程中,想辦法抽出一定時間來寫一些關於呼叫網路的API的博文,希望大家到時關注,當然我會將我所做的專案公之於眾,開源的

  1. 註冊:
    1. C :獲取使用者名稱&密碼&cmd
    2. Send struct server
    3. S :Check msg

      檢查資料庫,有重名 返回0

      檢查資料庫,可註冊 返回1

 

  1. 登陸:
    1. C :獲取使用者名稱&密碼&cmd
    2. Send struct server

3、S :Check msg

檢查資料庫,無此使用者 返回0

檢查資料庫,有此使用者 (1)、匹配密碼,不正確 返回1 (2)、正確返回2

  1. 檢視登陸使用者:
    1. C :獲取cmd
    2. 向server傳送cmd
    3. Server 傳送 return 使用者數
    4. S 向 C寫 使用者名稱 寫 使用者數 次數
    5. C向S讀 使用者名稱 讀 使用者數 次數

  2. 私聊

    1、C :寫入 name 寫入 toname msg

    2、send data to server

    3、S:尋找toname 和線上情況 線上 且名字正確 返回 1

    不線上 返回 0

    查無此人 返回 -1

    1. S:根據資料庫所得 向toname傳送 該資料協議

  1. 群發

    1、C :寫入 name msg

    2、send data to server

    3、S:對比現在線上使用者 傳送資訊

  2. 儲存資料

    Sqlite3資料庫

    二維表關係

                                                           chatdata

Id

名字

聊天記錄

                                                           User

Id

使用者名稱

密碼

                                                          Online

Id

使用者名稱

套接字

是否禁言

                                                         Serverdata

Id

登陸時間

 

  1. Root

    踢出聊天室 從online 刪除

    禁言 寫判斷 每次登陸都要測試是否被禁言

    解禁 寫禁言命令

    登出 直接從user 刪除 除非再註冊

  2. 客戶端傳送表情和新增常用語

    跟私聊一樣!

     

     

    經過上面的分析於是我決定使用下面我自己的資料結構體

資料協議

Struct message

{

Char name[100];//使用者名稱

Char passwd[100];//密碼

Int cmd; //命令

Int revert;//返回值

Char toname[100];//私聊物件

Char msg[100];//私聊內容

Int sockfd;//socket客戶端套接字

};

 

 

 

 

 

 

 

 

 

 

 

相關文章