65,186
社区成员




if(FD_ISSET(clientSocket[i].socketFd, pWset)) {
m_pAsynMutex->lock();
bool writeChk = false;
while (!m_clientSenderDataQueues[i].empty())
{
writeChk = true;
ByteArray data = m_clientSenderDataQueues[i].front();
printf("++++++start write...\n");
int writelen = write(clientSocket[i].socketFd, data.data(), data.length());
printf("-------end write...\n");
m_clientSenderDataQueues[i].pop();
if( writelen < 0 ) {
writeChk = false;
DEBUGERR("write error!");
close(clientSocket[i].socketFd);
FD_CLR(clientSocket[i].socketFd, pAllset);
restSocketInfo(clientSocket+i);
SocketIoHelper::clearQueue(m_clientSenderDataQueues[i]);
m_transferFileTasks[i].hasTask = false;
break;
}
if( writelen == 0 ) {
DEBUGWARN("writed length is zero!");
}
SocketIoHelper::log(LOG_DEBUG, "data length = %d, writed length = %d", data.length(), writelen);
}
m_pAsynMutex->unlock();
printf("send data queue is empty ? %s\n",m_clientSenderDataQueues[i].empty()?"true":"false");
if(!writeChk) {
continue;
}
}
}