小编cem*_*ycc的帖子

带epoll和线程的套接字服务器

我正在尝试在C语言中为Collaborative实时编辑器创建一个套接字服务器http://en.wikipedia.org/wiki/Collaborative_real-time_editor但我不知道它的最佳服务器架构是什么.

在第一次,我试图使用选择套接字服务器,但在那之后,我正在阅读有关epoll的内容,现在我认为epoll是最好的选择,因为客户端会发送用户将在textarea上写的每个字母,服务器,因此服务器将有一大堆数据要处理.

另外,我想使用epoll的线程,但我不知道如何使用它们.我想使用线程,因为我认为最好在目标机器上使用2个或所有CPU.

我的计划是

  • 在服务器启动时创建2个线程

  • 第一个线程将分析新客户端并准备它们进行读取或发送

  • 第二个线程将具有从/向客户端读取和发送数据的作业

问题是这2个线程将使用while(1)和epoll_wait.

我的问题是,这是一个使用epoll与线程的良好服务器架构吗?如果没有,我有什么选择?

编辑:我不能使用libeventlibev或其他库,因为这是一个大学项目,我不允许使用外部库.

c sockets multithreading epoll pthreads

6
推荐指数
1
解决办法
6825
查看次数

标签 统计

c ×1

epoll ×1

multithreading ×1

pthreads ×1

sockets ×1