我做一个C/S的东西。
客户端要向服务器传 各种命令
用户注册 则发送CString ,“NewUser”
但是两端传文件的话要用二进制的方式传
就是说有两种情况:
1。传文本
2。传byte
怎么实现啊?OnReceive()能重载么?
能的话怎么做好?

解决方案 »

  1.   

    错了,OnReceive()能多态么?
      

  2.   

    建议定义一个头如
    struct PktHead
    {
        DWORD m_Flag;
        WORD  m_Type;
        WORD  m_What;
        DWORD m_Len;
        BYTE  Reserved[32];
    };
    m_Flag 通讯数据的表示
    m_Type m_What 组合来判断数据是那种命令
    m_Len  数据的长度
    Reserved 为保留字段
      

  3.   

    CFile pFile;
    CFileException ex;
    pFile.Open(FileName,CFile::modeRead,&ex); //| CFile::typeBinary
    int nRead = 1;
    while(nRead > 0){
    char pBuf[2049];
    nRead = 0;
    nRead = pFile.Read(pBuf,2048);
    Cnt += nRead;
    pBuf[nRead] = 0;
    if(nRead > 0){
    ((CNClientApp *)AfxGetApp())->m_socket->SendData(pBuf);
    }
    }
    pFile.Close();
    这样子发可以么?但是接受的文件打不开,但若接受的是文本文件,怎能打开,何解?