代码之家  ›  专栏  ›  技术社区  ›  Kiril Kirov

GSOAP是否**不**关闭套接字?

  •  2
  • Kiril Kirov  · 技术社区  · 14 年前

    我和GSOAP有问题-它没有关闭插座。情况如下:应用程序工作正常,但当我调用“reload”函数时,它无法重新连接。这是一段代码:

    soap_destroy( &m_soapObj );
    soap_end( &m_soapObj );
    soap_done(&m_soapObj);
    
    sleep(1);
    
    soap_init(&m_soapObj);
    
    //m_ptrThis should be initialized already
    assert( m_ptrThis != NULL );
    m_soapObj.user = &m_ptrThis;
    
    m_soapObj.accept_timeout = nAcceptTimeout;
    m_ptrThreadPool->SetNumThreads( nNumThreads );  
    m_nSocketListener = soap_bind(&m_soapObj, NULL, nPort, nBacklog);
    if (!soap_valid_socket(m_nSocketListener))
    {
        throw Exception(
        "Cannot start listening on port: %d", nPort );          
    }
    

    它会抛出……当我尝试使用无SOAP时,程序崩溃,因为我没有创建新的SOAP对象,只需再次初始化它。所以,肥皂应该管用。有趣的是,这确实是 每次都发生。

    很奇怪……紧急情况:

    提前多谢了

    编辑 问题解决了。多亏了鸭子!

    1 回复  |  直到 13 年前
        1
  •  2
  •   Duck    14 年前