linux网络编程——聊天室总结
生活随笔
收集整理的這篇文章主要介紹了
linux网络编程——聊天室总结
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
說在前面
暑假留校的主要任務(wù)是學(xué)習(xí)linux下的c語言編程,之前寫了my_ls, my_shell這兩個(gè)可以說是練手的小項(xiàng)目,而最后的項(xiàng)目聊天室也是花了自己快兩周的時(shí)間,說實(shí)話第一次寫這種(對(duì)自己而言)大項(xiàng)目,最深刻的體會(huì)就是整體的架構(gòu)很重要,很重要,很重要…
項(xiàng)目概述
Linux 環(huán)境下的簡易聊天室,采用C/S模型,實(shí)現(xiàn)多客戶端之間的穩(wěn)定數(shù)據(jù)傳輸。
功能
a. 查看好友列表(不同顏色代表不同的狀態(tài))
b. 添加好友
c. 刪除好友
d. 屏蔽好友
a. 查看所加群,查看群中成員
b. 創(chuàng)建群
c. 加群
d. 退群
e. 解散群
f. 設(shè)置管理員
g. 踢人
a. 私聊
b. 群聊
c. 查看聊天記錄
a. 離線消息
b. 離線文件
a. 面對(duì)同時(shí)大量的客戶端發(fā)送連接與數(shù)據(jù)時(shí),服務(wù)器能正常處理
b. 客戶端的意外退出,不會(huì)導(dǎo)致服務(wù)器退出
c. 數(shù)據(jù)能夠正確接收和發(fā)送
相關(guān)技術(shù)
功能截圖
思路
服務(wù)端:
1. 創(chuàng)建套接字,綁定數(shù)據(jù)庫,創(chuàng)建epoll句柄,通過while循環(huán)檢測(cè)是否有請(qǐng)求到來,有請(qǐng)求到來時(shí)向線程池中添加任務(wù)
2. 創(chuàng)建3個(gè)鏈表,分別是儲(chǔ)存用戶信息,關(guān)系,以及聊天記錄
3. ctrl + c 退出,銷毀線程池,銷毀鏈表,關(guān)閉套接字,關(guān)閉epoll描述符,釋放資源
客戶端:創(chuàng)建套接字,登陸成功后開啟接收線程
注:客戶端收發(fā)數(shù)據(jù)一定要分開寫
完整代碼
chatroom
總結(jié)
以上是生活随笔為你收集整理的linux网络编程——聊天室总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android OpenCV(四十五):
- 下一篇: Linux下新增、启动、删除系统服务常用