CMySocket  *pSocket  =  new  CMySocket(); 
pDBSocket->Create() 定义的是pSocket,而使用的是pDBSocket,大概这个原因吧!

解决方案 »

  1.   

    是我拷错了,程序中是一致的。pDBSocket应是pSocket。不好意思
      

  2.   

    我也碰见过这种情况,在自己创建的线程中创建SOCKET总是失败,在主线程没有问题,我也不清楚原因,所以后来改用CAsyncSocket了。
      关注!!
      

  3.   

    CSocket 和 CAsySocket不能在线程中创建因为 在这两个类中已经封装了一个线程
      

  4.   

    skt01(skt001):
    和你说的完全一致!你是不是改用CAsyncSocket就可以了?
      

  5.   

    我改成从CAsyncSocket派生,同样出错。
      

  6.   

    我记得在生成应用程序的时候如果选择了支持Socket的话,那么就不需要再初始化了吧,
    if  (!AfxSocketInit()) 这句是不是不需要?
      

  7.   

    忘了告诉你,我用CAsyncSocket之后,所有的工作只在主线程中,不用线程了。
      

  8.   

    CMySocket *pSocket = new CMySocket(); 
    是什么意思,好像应该是CMySocket *pSocket = new CMySocket; 吧
      

  9.   

    是不是没有调用AfxSocketInit()这个函数,如果用到CSocket类一定要调用这个初始化函数的.
      

  10.   

    哈哈,还是自己封装几个socket api的类吧!以前只是听说CSocket烂,现在我才真正意识到,他真烂!
      

  11.   

    特别是涉及到多线程的问题时。CAsyncSocket封装了一个window以实现异步的socket读写。如果在一个线程中创建socket,在其他线程操作这个socket,很容易发生Assert(m_hSockWnd != NULL)的问题!我以前写的一个程序,使用的CSocket。在主线程中创建,连接,在另外的线程中发送数据。好像没有发现什么太大的问题。我的客户端在接受数据一段时间后,会有些异常情况,也不知道是不是跟CSocket有关!前几天,我又写一个socket的程序,也用CSocket,沿用上面的模式,老是出现问题。一气之下,自己封装类吧,用windows socket作,开几个线程阻塞操作socket,好像效果还可以:)