tcp_断开连接以执行客户端(WCF Soap 1.1和服务器)上的SIGPIPE(断开的管道)

tcp_断开连接以执行客户端(WCF Soap 1.1和服务器)上的SIGPIPE(断开的管道),soap,pipe,gsoap,sigpipe,Soap,Pipe,Gsoap,Sigpipe,我正在用gSOAP库开发一个Qt客户机(C++),该客户机应该与微软的Web服务(WCF)进行讨论。我在两边都用肥皂1.1 我的客户代码如下: CustomBinding_USCOREISynchronisation service; soap_ssl_init(); /* init OpenSSL (just once) */ soap_init2(service.soap, SOAP_IO_KEEPALIVE, SOAP_IO_KEEPALIVE); servic

我正在用gSOAP库开发一个Qt客户机(C++),该客户机应该与微软的Web服务(WCF)进行讨论。我在两边都用肥皂1.1

我的客户代码如下:

CustomBinding_USCOREISynchronisation service;

    soap_ssl_init(); /* init OpenSSL (just once) */

    soap_init2(service.soap, SOAP_IO_KEEPALIVE, SOAP_IO_KEEPALIVE);
    service.soap->max_keep_alive = 1000; // at most 100 calls per keep-alive session
    service.soap->accept_timeout = 6000; // optional: let server time out after ten minutes of inactivity

    if (soap_ssl_client_context(service.soap,
       SOAP_SSL_NO_AUTHENTICATION,
       NULL,    /* keyfile: required only when client must authenticate to server (see SSL docs on how to obtain this file) */
       NULL,     /* password to read the key file (not used with GNUTLS) */
       NULL, /* cacert file to store trusted certificates (needed to verify server) */    NULL,  /* capath to directory with trusted certificates */
       NULL  /* if randfile!=NULL: use a file with random data to seed randomness */
    ))
    {
       soap_print_fault(service.soap, stderr);
       exit(1);
    }

    _ns1__Connect req;
    _ns1__ConnectResponse resp;

    std::string strLogin = "tata@gmail.com";
    std::string strPassword = "681982981298192891287B0A";
    bool bInternalUser = true;

    req.login = &strLogin;
    req.password = &strPassword;
    req.isInternalUser = &bInternalUser;

    int err = service.__ns1__Connect(&req, &resp);
    if (SOAP_OK == err)
        qDebug() << ":D";
    else
    {
        qDebug() << "Error : " << err;
        soap_print_fault(service.soap, stderr);
    }

    qDebug() << "Result of Connect : " << resp.ConnectResult;
CustomBinding\u uscoreisynchronization服务;
soap_ssl_init();/*初始化OpenSSL(仅一次)*/
soap_init2(service.soap、soap_IO_KEEPALIVE、soap_IO_KEEPALIVE);
service.soap->max\u keep\u alive=1000;//每个保持活动状态会话最多100个呼叫
service.soap->accept_timeout=6000;//可选:让服务器在10分钟不活动后超时
if(soap\u ssl\u客户端)上下文(service.soap,
SOAP\u SSL\u无\u身份验证,
NULL,/*keyfile:仅当客户端必须向服务器进行身份验证时才需要(有关如何获取此文件的信息,请参阅SSL文档)*/
NULL,/*读取密钥文件的密码(不与GNUTLS一起使用)*/
NULL,/*用于存储受信任证书的cacert文件(需要验证服务器)*/NULL,/*capath到具有受信任证书的目录*/
NULL/*如果randfile!=NULL:使用包含随机数据的文件来播种随机性*/
))
{
soap\u print\u故障(service.soap,stderr);
出口(1);
}
_ns1__连接请求;
_ns1___连接器响应响应响应;
std::string strLogin=”tata@gmail.com";
std::string strPassword=“681982981298192891287B0A”;
bool-bInternalUser=true;
req.login=&strLogin;
req.password=&strPassword;
req.isInternalUser=&bInternalUser;
int err=服务。\uuuuNS1\uuuuuuuu连接(&req,&resp);
如果(SOAP_OK==err)
qDebug()