第一次写MFC Socket程序。遇到个问题,恳请大家的帮助。
   
    程序是基本的MFC Socket程序,面向连接的。
    运行结果:客户端发送数据,服务端可以收到,并能在“收到的信息”控件上显示;
              但服务端发送的数据, 客户端“收到的信息”控件上没有显示;
    程序:
         客户端、服务端OnReceived()(接收数据)事件处理函数、OnButtonSend() (单击“发送”按钮,发送数据)函数代码是一样的。
         那应该说明,客户端单击“发送”按钮后OnButtonSend()处理,服务器调用OnReceived()接收数据、显示数据 这个过程是对的。
         反过来就不行了。
    不知道有什么原因导致以上情况呢?
         

解决方案 »

  1.   

    不至于吧 自己查查 注意服务器发送要用那个连接的客户端socket
      

  2.   

    你直接在OnReceived里面Send收到的数据,看看客户端能不能收到
      

  3.   

    汗了。。
    我忘记把 客户端 CAsyncSocket 派生类MySocket中的 事件响应函数见映射了。。
    class CMySocket : public CAsyncSocket
    {
    // Attributes
    public:// Operations
    public:
    CMySocket();
    virtual ~CMySocket();// Overrides
    public:
    void SetParent(CClientDlg * p_Dlg);
    void OnConnect( int nErrorCode );
    void OnClose( int nErrorCode );
    void OnReceived( int nErrorCode );
    服务器的响应函数,是通过在Class Wizzard中添加的。
    //{{AFX_VIRTUAL(CMySocket)
    public:
    virtual void OnAccept(int nErrorCode);
    virtual void OnClose(int nErrorCode);
    virtual void OnReceive(int nErrorCode);
    //}}AFX_VIRTUALO(∩_∩)O~。。很低级的错误。。
    谢谢楼上了。。
      

  4.   

    www.3sbase.cn 上数据库与网络编程厘面有个 例子,写的很详细 你可以看一下!
      

  5.   

    第二次犯了两个错误:
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CMySocket)
    //}}AFX_VIRTUAL// Generated message map functions
    //{{AFX_MSG(CMySocket)
    // NOTE - the ClassWizard will add and remove member functions here.
    //}}AFX_MSG
    这两个宏,我没区分好。把虚函数放到下面的宏中了。还有CAsyncSocket类Overridable Notification Functions :OnReceive(),写出了OnReceived()