我正在尝试在C语言中为Collaborative实时编辑器创建一个套接字服务器http://en.wikipedia.org/wiki/Collaborative_real-time_editor但我不知道它的最佳服务器架构是什么.
在第一次,我试图使用选择套接字服务器,但在那之后,我正在阅读有关epoll的内容,现在我认为epoll是最好的选择,因为客户端会发送用户将在textarea上写的每个字母,服务器,因此服务器将有一大堆数据要处理.
另外,我想使用epoll的线程,但我不知道如何使用它们.我想使用线程,因为我认为最好在目标机器上使用2个或所有CPU.
我的计划是
在服务器启动时创建2个线程
第一个线程将分析新客户端并准备它们进行读取或发送
第二个线程将具有从/向客户端读取和发送数据的作业
问题是这2个线程将使用while(1)和epoll_wait.
我的问题是,这是一个使用epoll与线程的良好服务器架构吗?如果没有,我有什么选择?
编辑:我不能使用libevent或libev或其他库,因为这是一个大学项目,我不允许使用外部库.