|
데이터를 수신하다보면 가끔씩
"메세지 버퍼열이 부족하여.... 어쩌고 저쩌고... " 이하 잡소리... ㅡㅡ;;;;
뭐 이런 메세지가 나오는데요....
메세지 수신이 제대로 진행이 안될때 생기는 경우라고 생각이 되는데...
일단 수신 부분은...
Socket->ReceiveBuf(&receiveFrame, sizeof(PROT_HEAD)); // head read
int iLCount = receiveFrame.m_Head.m_wFrameSize/sizeof(DATA_FRAME); // receive frame count 계산
switch(receiveFrame.m_Head.m_bCommand) // command check
{
case CDP: // current data일 경우 처리
memset(&receiveFrame.receiveData,0x00,sizeof(receiveFrame.receiveData)); // receive data clear
// data frame receive
Socket->ReceiveBuf(&receiveFrame.receiveData,receiveFrame.m_Head.m_wFrameSize - sizeof(PROT_HEAD));
// 이하 쓰잘데기 없는 처리문...
break;
case SDP: // store data일 경우 처리
memset(&receiveFrame.receiveData,0x00,sizeof(receiveFrame.receiveData)); // receive data clear
// data frame receive
Socket->ReceiveBuf(&receiveFrame.receiveData,receiveFrame.m_Head.m_wFrameSize - sizeof(PROT_HEAD));
// 이하 쓰잘데기 없는 처리문...
break;
case ERC: // error code
memset(&receiveFrame.receiveData,0x00,sizeof(receiveFrame.receiveData));
Socket->ReceiveBuf(&receiveFrame.receiveData, receiveFrame.m_Head.m_wFrameSize - sizeof(PROT_HEAD));
// 이하 쓰잘데기 없는 처리문...
break;
default:
return;
}
일단 헤더에 실려오는 Command에 따라 각각 다른 처리를 하기 위해 위와 같이 하였습니다..
가끔씩 버퍼열이 어쩌고 어쩌고 하여...
default : 부분에 데이터를 받아두니 Socket->ActiveConnections 의 카운터가 계속 0이 되더군요...
따라서 수신한 주소로 데이터를 전송하려해도 전송이 되지를 않거... ㅡㅡ;;;;
음... 해결책이 없을까요??? ㅡㅡa
|