POCO C ++当套接字可读时只获得一个通知?

时间:2013-10-16 16:56:01

标签: c++ multithreading threadpool poco reactor

我现在正在编写游戏服务器,这是我的onReadable函数:

void CSConnection::onReadable(const AutoPtr<ReadableNotification>& pNf)
{
    try
    {
        char * rbuff = new char[128](); //allocate incoming packet memory
        int n = _socket.receiveBytes(rbuff, 128);
        if(n > 8)
        {
            WorkerThreadPool::getInstance().tp->start(*new LogicHandler(*this, rbuff));
        }
        else
        {
            delete rbuff;
            delete this;
        }
    }
    catch(Poco::Exception& exc)
    {
        app.logger().log(exc);
        delete this;
    }
}

我试图在线程池的逻辑处理程序中移动读取数据包,但通知被称为multiply。

有没有办法只收到一个通知? 因为线程读取速度较慢,并且在onReadable上调用5-9次。 感谢。

0 个答案:

没有答案