多功能聊天室-項目規划實現圖


網絡編程項目規划

最近在練習一個項目吧,大概給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客戶端套接字

};

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM