我在服务端创建了2个socket类(A和B),如果两个socket类都增加了OnRecevie()函数的话,客户端发消息过来的时候,是有A的OnReceive处理还是由B的OnReceive处理呢?

解决方案 »

  1.   

    那就看跟客户端通讯的是用的哪个socket了
      

  2.   

    在 server 端,socket 应当通过 accept 得到(这样得到的是与客户端有连接的 socket),而不是主动创建 socket 得到。
      

  3.   


    我是在A上绑定了端口,起的监听。现在连接正常。我当时加OnReceive的时候加错了,A类并没有加OnReceive函数,而是加B类里加在OnReceive,现在客户端发消息过来的时候,就是由B类的OnReceive函数处理的,也能正常接收消息。我绝的很奇怪
      

  4.   

    问题再补充一下:我没有在socket B起监听绑端口,只有A起了监听和端口
      

  5.   


    B不是从A继承的啊。创建A和B的时候,basic类都是CSocket。我也很纳闷
      

  6.   

    总觉得学socket编程的时候用MFC的类会很吃力楼主先说下对服务器端流程的理解吧
      

  7.   

    CSocket啊
    你这个是绑定了窗口的吧响应都绑定到一个函数里面去了
    在响应的时候wparam指定了socket a或者b
      

  8.   


    服务端(A)起了监听,客户端发连接消息到服务端,服务端接收连接请求(OnAccept)。这一过程都是正常的。然后客户端给服务端发消息,服务端接收消息(OnReceive)。现在A并没有加OnReceive,而服务端的另一个类B里加了OnReceive。现在问题就是消息也能正常接收
      

  9.   

    应该是在OnAccept关联上了B吧,然后剩下与客户端通讯的工作就交给B来处理了负责监听的socket它只负责接收连接请求,不负责与客户端的通讯
      

  10.   


    若然是OnAccept关联上了B了。非常感谢,呵呵。