本文整理汇总了C++中TcpSocket::sendPendingDatas方法的典型用法代码示例。如果您正苦于以下问题:C++ TcpSocket::sendPendingDatas方法的具体用法?C++ TcpSocket::sendPendingDatas怎么用?C++ TcpSocket::sendPendingDatas使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TcpSocket
的用法示例。
在下文中一共展示了TcpSocket::sendPendingDatas方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
void TcpASIOWriter::run()
{
bool hasMoreDatasToSend = false;
while (m_running)
{
if (hasMoreDatasToSend)
{
m_mutex->lock();
setFds();
m_mutex->unlock();
m_selector.waitForTrigger();
if (m_selector.getState() == Selector::Error)
{
std::cerr << "Select error on writing thread." << std::endl;
return ;
}
m_mutex->lock();
std::list<SocketFD> triggeredList = m_selector.getWritingTriggeredSockets();
hasMoreDatasToSend = false;
for (std::list<SocketFD>::iterator it = triggeredList.begin(); it != triggeredList.end(); ++it)
{
TcpSocket* socket = m_server->getSocketByFd(*it);
if (socket->havingPendingDatas())
socket->sendPendingDatas();
if (socket->havingPendingDatas())
hasMoreDatasToSend = true;
}
m_mutex->unlock();
}
else
{
m_condVar.wait();
hasMoreDatasToSend = true;
}
}
std::cout << "Writer thread stopped." << std::endl;
}