我在编程时碰到以下问题:
  client端:发信息过来:
  在server端,从csocket 类继承生成一个CServerSocket类
void CServerSocket::OnReceive(int nErrorCode) 
{// TODO: Add your specialized code here and/or call the base class
BOOL flag;
flag=true;
char pCommand[1024]="";
         int ByteCount=0;
ByteCount=Receive(pCommand,1000);
if (ByteCount>1000||ByteCount<=0)
{AfxMessageBox("error at receive date",MB_OK);
flag=false;

pCommand[ByteCount]=0; 

m_pMainFrame->receive.Format(pCommand);//m_pMainFrame->receive类型为cstring;
if(m_pMainFrame->receive=="死了吗")
{SendTo("还活着",6,8888,"127.0.0.1");
//return;
flag=false;
}
if(flag)
m_pMainFrame->VodPlay();//一个处理函数自己编写的
CSocket::OnReceive(nErrorCode);
}
由于client 端不断的发信息过来,而sever端处理需要时间,
特别是m_pMainFrame->VodPlay(),会不会时间一长导致蓝屏,我的程序有时候能运行几个小时,但没超过1天的,就会蓝屏。是不是还会有其他原因?

解决方案 »

  1.   

    是不是系统资源耗尽?
    你用的是什么操作系统?  NT  win2k 等会比较鲁棒一些。============================================================================
    http://www.betajin.com/alphasun/index.htm
    DocWizard C++程序文档自动生成工具 | Wave OpenGL 水波与动模拟和显示
      

  2.   

    有可能你的VodPlay正在执行过程中,有新的信息到达,VodPlay又开始执行,不知道这样会造成什么后果。可以从几方面入手:1.放慢发送速度,使VodPlay来得及处理;2.以VodPlay的处理速度为准,在处理过程中到达的信息被丢弃;3.提高VodPlay的处理速度,使之适应发送的速度;4.其他方法。 :-)
      

  3.   

    什么情况下会导致系统资源耗尽啊?
    蓝屏,(报错是vxd引起的异常)
    要不就重启
      

  4.   

    同一个线程中不可能出现VodPlay正在执行过程中又接受新的消息,只有这个消息处理完了才会处理下一个消息
    是不是你的m_pMainFrame->VodPlay();//一个处理函数自己编写的
    有MEMORY LEAK OR 占用的CPU太大