没看出问题,关注.
最远能中断到select返回0吧?

解决方案 »

  1.   

    关键是我在这个int CNetServer::Listen()里面设的断点都没有执行
    wwwllg(wwwllg,你说accept时阻塞了,是什么意思,有什么办法没有
      

  2.   

    那你要好好找找问题,怎么连CNetServer::Listen()都执行不到?难道线程没有产生?看看为什么执行不到.
      

  3.   

    在Listen的第一行舍得端点呢?进ListenThread了吗?从下往上一步步跟踪。
      

  4.   

    if(SOCKET_ERROR == listen(m_ListenSocket,m_nAcceptSocket))
    这句里你的m_nAcceptSocket是指什么呀,SOCKET对象?它应该是指连接的数量,你改成SOMAXCONN,我在本机运行已经通过了!能跟到AcceptConnect()里
      

  5.   

    yjack007() ,m_nAcceptSocket其实也是一个数值,
    还是不行呀。连int CNetServer::Listen()里都没有进去。
    如果我这样改一下就可以跟到AcceptConnect()里:
    在startService()里面将
    去掉 AfxBeginThread(ListenThread,this);

    而改为  Listen(),这样就可以进入AcceptConnect(),也就是说不要线程,可是这样的话,我的程序就进入了死循环,出不来,无法执行startService()以后的函数。
      

  6.   

    当然,在启动的时候,是可以去int CNetServer::Listen()的,可是,启动了一后,再去启动客户机就不行啦。无法进入int CNetServer::Listen()的断点