int str_len = read(m_events[i].data.fd, buf, BUF_SIZE);
我有这个,我将数据读入的BUF声明如下如何在缓冲区中的数据复制到某处内存(字符*)
char buf[BUF_SIZE];
我所试图做的是,我想获取数据并将其交给我定义的WorkHanndler,只不过是一个线程池。
而且功能
void ServerManager::addWork(int sender, char *data){
Work* work = new Work(sender, data);
m_workHandler->addWork(work);
}
所以我需要一个字符指针,它指向我刚才读的数据。由于缓冲区被定义为一个数组,我将无法将其传递给函数。
另外,你们认为这是一个在服务器设计方面的好主意吗?我正在从缓冲区中读取数据,不解析它,只是将原始数据交给线程池(插入到队列中)。线程池有一个队列,五个单独的线程竞争使用互斥锁和条件变量从队列中获取作业。完成作业后,单独的线程会将结果写入输出缓冲区。请让我知道它是否有缺点,并且你们有更好的主意。提前致谢。
你可能想要的数据尺寸加入该功能。 – DanDan 2011-06-16 10:57:05