首先,如果你的服务器将面对几十个、几百个,甚至上千个连接,那么为每一个连接建立一个线程肯定不是好的选择。对于OnRecieve的响应应该在线程内完成。建议你从CSocket派生自己的类,类里面处理OnRecieve等,然后在每个线程中使用该类就可以了。

解决方案 »

  1.   

    回答你的问题:
    OnReceive()响应代码在你的Socket所在的线程里运行.我觉得,创建一个监视线程(监听连接请求),然后为每个连接上来的客户起一个线程,单独进行管理,这样的思路是清晰(我好象也不反对这样作,至于系统能承受多大的压力,看看你的服务程序究竟是什么角色了).还有,多线程和MFC的消息映射,你说该不该尽快了解一下呢.
    祝你好运.
      

  2.   

    也了解了不少,我把消息响应当作一个死循环(for(;;)),不停的察看是否有消息进来。但我对多线程的了解就是抢占cpu资源。主要我现在看的是别人的一份用原始的C代码加windows api写的一段代码,他用的也是多线程响应连接,但用的是非消息响应的方法,用Select来轮讯。而我看过MFC对winsock的封装,就是把Select改成了消息映射。但不知道用到多线程中是不是可以一样的用,这里再次谢谢xyzboat!