Skip to content

singernavyblue/BBS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BBS

Bulletin Board System -- 电子布告栏系统

实现了一个简单的多线程聊天服务器,能够处理多个客户端的连接,并根据客户端选择的类型,将消息多播给相同类型的其他客户端。服务器会记录消息,并且在客户端连接时发送历史记录。

技术要点总结: 1.多线程编程: 使用 pthread 库创建线程,每个客户端连接创建一个独立的线程来处理,以提高并发性能。

2.读写锁的使用: 使用 pthread_rwlock_t 进行读写锁操作,确保链表和文件的操作在多线程环境下的安全性。读写锁允许多个线程同时读数据,但在写操作时需要独占访问权限,避免读写冲突。

3.链表管理: 使用单向链表管理多个客户端的连接信息。每个客户端连接都会插入链表,断开连接时从链表中删除。

4.消息多播: 根据客户端选择的类型,将接收到的消息多播给所有相同类型的客户端,保持类型间消息的隔离性。

5.文件操作: 将客户端发送的消息持久化到对应类型的文件中,并在客户端连接时发送历史记录,使用锁机制保证文件操作的线程安全。

6.网络编程基础: 套接字创建、绑定、监听和接受客户端连接。使用 recv 和 write 进行消息的接收和发送。

About

Bulletin Board System -- 电子布告栏系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages