|
제소스 구조를 간략하게 적어봤습니다.
이런구조가잘못된건가요? ;
통신중에 메세지를 가끔놓쳐서 말이죠. ㅠㅠ
클라이언트가 하나만 붙었을경우에는 잘모르는데.. 여러개가 붙으면.. 그런증상이 심합니다..
꼭 메세지를 써야하거든요..
이게 아니라면 다른방법을아신다면 짧은글이라도 부탁드릴께요.
void __fastcall TTcpThread::Execute()
{
try
{
try
{
m_pStream = new TWinSocketStream(ClientSocket, 120000);
while(!Terminated&&ClientSocket->Connected)
{
TcpSendProcess();
TcpRecvProcess();
}//while
}//try
catch(...)
{
//생략
}//catch
}//try
__finally
{
생략
}//__finally
}//Execute()
void __fastcall TTcpThread::TcpSendProcess()
{
MSG Msg;
if(!PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) return;
else
{
switch(Msg.message)
{
case WM_MESSAGE_1:
함수_1();
break;
case WM_MESSAGE_2:
함수_2();
break;
}//switch
}//else
}//TcpLoginProcess
void __fastcall TTcpThread::TcpRecvProcess()
{
if(m_pStream->WaitForData(100))
{
.....생략
RecvBuff(pBuff, nRecvLen);
...생략
}//if
}//RecvProcess()
|