티스토리 뷰

개발

TCP/IP wouldblock 처리

likehood~ 2007. 7. 27. 16:21

AsyncSocket()일 경우에
Send명령으로 데이터전송이 다 이루어지지 않을경우
처리하는 방법...

누가 물어봐서~..


OnSend()
{
 if(m_qList.size() > 0)
 {
  while( !m_qList.empty() )
  {
   vector<BYTE> vtData=m_qList.back();
   int nSize=vtData.size();
   BYTE *pData=new BYTE[nSize];
   copy(vtData.begin(),vtData.begin()+nSize,pData);
   if(SOCKET_ERROR != m_pSockMot->Send(pData,vtData.size()))
   {
    m_qList.pop();
   }
   delete [] pData;
  }
 }
}
SomethingFunc()
{
 if(SOCKET_ERROR == m_pSockMot->Send((LPCSTR)strText,nlen))
 {
  if(WSAEWOULDBLOCK ==m_pSockMot->GetLastError())
  {
   vector<BYTE> vtByte;
   for(int i = 0 ; i < strText.GetLength() ; ++i)
   {
    vtByte.push_back(strText.GetAt(i) );
   }
   m_qList.push(vtByte);

  }
 }
}

'개발' 카테고리의 다른 글

simpleAdo 2.10  (0) 2008.02.21
프로세스의 메모리 사용량가져오기  (2) 2007.09.27
Shock Sticker  (1) 2007.07.12
SciTE Editor 한글화하기..  (2) 2007.07.03
RFI(Request For Information)를 누가 작성하는걸까.  (0) 2007.07.03
댓글