如题!我在另一台机器上又没有这样的问题。

解决方案 »

  1.   

    SOCKET CServiceManager::CreateServerSocket(unsigned long _uIP, unsigned short _nPort)
    {
    unsigned long uIP = ::htonl(_uIP);
    SOCKADDR_IN addr;
    unsigned short uPort = ::htons(_nPort);
    SOCKET sServer; addr.sin_addr.s_addr = uIP;
    addr.sin_port = uPort;
    addr.sin_family = AF_INET;
    sServer = socket(AF_INET, SOCK_STREAM, 0);
    if(sServer == INVALID_SOCKET)
    {
    CString strError;
    TRACE(_T("无法创建Socket, 错误代码:%ld"), ::WSAGetLastError());
    strError.Format(S_CREATESOCKET_FAILED, ::WSAGetLastError());
    ::AfxMessageBox(strError);
    return INVALID_SOCKET;
    } // 绑定SOCKET到对应的IP和PORT
    if(bind(sServer, (SOCKADDR*)&addr, sizeof(SOCKADDR_IN)) == SOCKET_ERROR)
    {
    CString strError;
    TRACE(_T("无法绑定Socket到%ld端口, 错误代码:%ld"), _nPort, ::WSAGetLastError());
    strError.Format(S_BINDSOCKET_FAILED, _nPort, ::WSAGetLastError());
    ::AfxMessageBox(strError);
    return INVALID_SOCKET;
    }
    ....执行sServer = socket(AF_INET, SOCK_STREAM, 0);之前是只有一个线程,
    执行之后就多了两个了。在if那里设断点我试过。
    这个程序我在别的机器上运行就没这样的问题,就是在我家的机器上运行才这样。我怀疑是中了病毒或木马。但我又不知道哪些木马和病毒会这样做,把线程加入到我的程序里。
      

  2.   

    哈, 有可能是黑客替换了你的 ws2_32.dll 你调用的是黑客DLL, 他在内部创建线程后再引导自真正的 ws2_32.dll. 小心哦, 要爆炸了:)
      

  3.   

    问题,我终于找到了。原来是KV3000搞的鬼!当调用socket时就会加载了一个system32目录下的KVWSP.DLL文件,该文件是KV3000的,我问过江民公司了他们说这个文是用
    于监视网页病毒。就是它给创建了两个线程。我的分数如何处理啊?