系統(tǒng)網(wǎng)絡(luò)項目總結(jié)

Linux下網(wǎng)絡(luò)聊天系統(tǒng)

系統(tǒng)分為兩個結(jié)構(gòu):
1.聊天系統(tǒng)客戶端。

客戶端主要功能:
客戶登錄界面,客戶選擇輸入注冊和登錄;
客戶注冊時,如果用戶存在就提示用戶已經(jīng)存在,重新輸入;
客戶登錄時需要驗證碼提醒,驗證碼不正確就會提示重新登錄,如果用戶已經(jīng)在線、密碼錯誤、用戶不存在都會得到相應(yīng)的提醒;
登錄成功之后,會提示進入聊天界面,可以選擇單聊或者群聊;
單聊會和指定用戶發(fā)送消息;
群聊所有用戶都會接受信息;
客戶端使用是多進程將輸出信息和輸入信息分開處理,退出是要避免僵尸進程的刪除,我使用的是wait()。

2.聊天系統(tǒng)服務(wù)器端。
服務(wù)器主要功能:
服務(wù)器采用的是守護進程,可以防止干擾現(xiàn)象的發(fā)送;
服務(wù)器接受客戶的各種請求,且服務(wù)器會把數(shù)據(jù)返回給客戶端做出相應(yīng)的操作
服務(wù)器處理用戶信息時,實際就是對鏈表、文件的操作;
服務(wù)器采用的是多線程,實現(xiàn)多用戶同時登錄;
我的用戶信息和登錄信息存放在文件中,添加和刪除時頻繁操作文件時,需要避免同時讀寫的問題;
群聊所有用戶都會接受信息

項目中遇到的問題及解決方法
?調(diào)試過程:
服務(wù)器多線程時,一直實現(xiàn)不了,不需要pthread_join();
創(chuàng)建進程時需要等待僵尸進程的出現(xiàn);
聊天時只能單項進行聊天,讀取不到后來的用戶,需要重新讀取文件的內(nèi)容;
操作文件時不能同時讀寫,必須讀寫互斥,否則容易出現(xiàn)亂碼;
實現(xiàn)轉(zhuǎn)發(fā)時,必須要傳送連接套接字,不能傳輸監(jiān)聽套接字。

其實開始做項目的時候,感覺項目很簡單,沒有什么困難的問題,但是真正當(dāng)自己做起來以后感覺自己還需要有很長的路要走,項目中遇到了非常的問題,其實最好的進步方式就是在項目中成長,只要項目是自己完成,因為在做項目的時候,你會發(fā)現(xiàn)許多拆分的知識點你都需要重新的組裝,融合,然后應(yīng)用到項目中,當(dāng)完成的那一刻,你一定都會感覺收獲非常的巨大。。碰到不同問題的時候就是需要不停的解決,因為企業(yè)需要就是要有解決問題能力的人。項目做完以后,感覺自己的項目做的實在是太low了,一切的編程問題其實都是為了解決實際中遇到的問題,如果不能解決實際中遇到的問題,你的代碼一定用處都沒有,所以感覺自己還有很長的路需要走。
今年自己剛剛畢業(yè),選擇來到上海這座城市,我知道很迷茫和彷徨,但是今年我選中了方向,不再迷茫,我要朝著自己選中的方向不斷的前進,就算前路荊棘。希望明年能夠順利的進入這個行業(yè)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容