用的是MFC,多谢,急
小弟初次用,最好有详细的说明和源码

解决方案 »

  1.   

    因为在接收客户机发来的数据时老是出现丢失,
    别人建议另起一个线程来监听,但是不知道该怎么做
    下面是我本来的代码
    void CListeningSocket::OnAccept(int nErrorCode) 
    {
    CAcceptSocket* pSocket = new CAcceptSocket(); if (Accept(*pSocket))
    {

    }
    else
    delete pSocket;

    CSocket::OnAccept(nErrorCode);
    }--------------
    void CAcceptSocket::OnReceive(int nErrorCode) 
    {
    char pMsg[1000],tempMsg[1000];
    int ByteCount;
    int EndFlag=0;
    strcpy(pMsg,""); do
    {
    strcpy(tempMsg,""); ByteCount = Receive(tempMsg,1000); if(ByteCount>1000 || ByteCount<=0)
    {
    MessageBox(NULL,"接收数据出错","提示信息",MB_OK);
    return;
    }
    else if(ByteCount<1000 && ByteCount>0)
    {
    EndFlag = 1;
    } tempMsg[ByteCount] = 0;
    strcat(pMsg,tempMsg);
    }while(EndFlag==0); strcpy(MessageInfo,pMsg);

    AfxGetMainWnd()->PostMessage(WM_COMMAND,ID_NETWORK_SHOW);

    CSocket::OnReceive(nErrorCode);
    }
      

  2.   

    看看这个代码,问题太多了
    tempMsg[ByteCount] = 0;
    strcat(pMsg,tempMsg);