我建立了一个带存档的套接字程序,在客户端发送一个测试消息给服务器时,消息能准确的收到,但是当服务器收到这个消息后,发送一条回馈消息给客户端时,却收不到,我估计是这种带存档的套接字编程模式中什么地方出了错,请帮我找找原因,以下是代码
server:
--------------------------------------------------------------------------
m_pSocket = new CSocket();
if (m_pSocket->Create(5050))
{
    if (m_pSocket->Listen())
    {
CSocket sockRecv;
m_pSocket->Accept(sockRecv); CSocketFile file(&sockRecv); CArchive serverIn(&file,CArchive::load);
CArchive serverOut(&file,CArchive::store); //接收客户端的测试消息
         serverIn>>strtest;
if(strtest.GetLength())
{
    //把消息显示出来
             GetView()->SetWindowText(strtest);
}

//收到客户端消息后,向它发送一个回馈
         strmsg = "已经收到,这是来自服务器的回馈消息";
serverOut<<strmsg;

return TRUE;
    }
}
--------------------------------------------------------------------------client:
--------------------------------------------------------------------------
GetView()->SetWindowText("正在建立套接字连接...");

//如果已经连接,就不要再连接
if(m_bConnected)
    return false;//1,构造客户端SOCKET对象
if(m_pSocket == NULL)
{
    m_pSocket = new CSocket();
    ASSERT(m_pSocket != NULL);
}//2,创建套接字,失败返回0
if (!m_pSocket->Create())
{
    delete m_pSocket;
    m_pSocket = NULL;
    TRACE("Create Socket Error!\n");
    return FALSE;
}//3,将此套接字对象连接到服务器套接字,如果没有连通,则反复询问进行连接
while (!m_pSocket->Connect("192.168.0.126", 5050))
{
}

//显示连接成功
GetView()->SetWindowText("连接成功!");//4,创建一个 CSocketFile 对象,将 CSocket 对象与它关联起来。
CSocketFile file(m_pSocket);//5,创建一个 CArchive 对象用于加载(接收)或存储(发送)数据。此存档与 CSocketFile 对象关联。
CArchive clientIn(&file,CArchive::load);
CArchive clientOut(&file,CArchive::store);//6,使用 CArchive 对象在客户端套接字与服务器套接字之间传递数据。
strtest = "这是来自客户端的测试消息。";
clientOut<<strtest;

//接收服务器的回馈消息
clientIn>>strmsg;
if(strmsg.GetLength())
   GetView()->SetWindowText(strmsg);//将此消息显示出来

//设置连接成功标志
m_bConnected = TRUE;return TRUE;
--------------------------------------------------------------------------