各位,请帮帮忙,我正在做一SOCKET服务和客户端通讯程序,如果客户端给服务器发送字符串或其他类型,服务器都能正常接收,而服务器给客户椴发送字符串时就会出现错误,跟踪到"ASSERT(m_hSocket == INVALID_SOCKET || CAsyncSocket::FromHandle(m_hSocket) != NULL)"出错,而发送其他类型(如WORD,INT,FLOAT)正常.请问是何原因?

解决方案 »

  1.   

    而发送其他类型(如WORD,INT,FLOAT)正常.
    _____________
    不可能.SOCKET才不认什么字符串,INT呢.都是字节流.绝对不是数据类型的问题. 多贴点代码上来.
      

  2.   

    void COtherMsg::Serialize(CArchive& ar)
    {
    CObject::Serialize(ar);
    if (ar.IsStoring())
    {
    ar << (WORD)m_bClose; // BOOL 
    ar << m_strText;在这儿出错
    }
    else
    {
    WORD wd;
    ar >> wd;
    m_bClose = (BOOL)wd;
    ar >> m_strText;
    } m_allData.Serialize(ar);
    }
      

  3.   

    但系统抱SOCKET错误,跟踪到ASSERT(m_hSocket == INVALID_SOCKET || CAsyncSocket::FromHandle(m_hSocket) != NULL)发生异常
      

  4.   

    老兄,你竟然用CSocket作网络通信的Server端,我无话可说了,建议你用socket api或者CAsyncSocket,千万不要用CSocket,你有无穷无尽的问题。