这是个聊天程序,刚开始。
  其中遇到了两个主要问题:
  (一)客房端连接服务端,不能经常得到不一样的结果。
   我在服务端根据客户端的消息类型int pMsg->Type 让它弹出“hi hi”或“No user”,但出现情况经常不一样,有时什么也不出现。但连接不成功时,我也作了判断。
不知程序中哪出了问题!
  (二)服务端向客户端发送pMsg时,客户端可以收到pMsg->Type,但pMsg其它的数据
却不接收到。如果是在断点调试时pMsg->Type也不能收到,其值是为初始化值。
  请高手指点!
  给出邮箱地址,我马上发送!

解决方案 »

  1.   

    你这个接收客户端连接的数不对.应该将pSocket保存到一个队列里去.
    void CYOServerDlg::ProcessAccept(CAcceptSocket *pAcSock)
    {
    CServiceSocket *pSocket = new CServiceSocket(this);
    if(!m_pSocket->Accept(*pSocket))
    delete pSocket;
    }
    //修改如下:
    //先头文件里定义一个SOCKET队列
    CList<CServiceSocket *, CServiceSocket *> m_pClientList;
    // 函数修改
    void CYOServerDlg::ProcessAccept(CAcceptSocket *pAcSock)
    {
    CServiceSocket *pSocket = new CServiceSocket(this);
    if(m_pSocket->Accept(*pSocket))
             {
                   m_pClientList.AddTail(pSocket);//当Accept()成功时插入队列.
             }
             else
             {
    delete pSocket;
              pSocket = NULL;
             }
    }
      

  2.   

    记得new出来的东东,关闭时要全部delete. :)
      

  3.   

    给我一个看看。我建议你用线程池。我的mail:[email protected].