C++ 如何在XMLRPC-C++;

C++ 如何在XMLRPC-C++;,c++,web-services,xml-rpc,xmlrpclib,simplexmlrpcserver,C++,Web Services,Xml Rpc,Xmlrpclib,Simplexmlrpcserver,下一个场景是: 我有一个XMLRPC-C++应用程序,在端口=8081上侦听连接。它使用xmlrpc-c库作为下一步,实现了一个深渊服务器: xmlrpc_c::serverAbyss myAbyssServer( myRegistry, //handler of methods port, //8081 "xmlrpc_log" ); 当我从一个调用许多XMLRPC方法的脚本创建多个连接时,它工

下一个场景是: 我有一个XMLRPC-C++应用程序,在端口=8081上侦听连接。它使用xmlrpc-c库作为下一步,实现了一个深渊服务器:

xmlrpc_c::serverAbyss myAbyssServer(
        myRegistry, //handler of methods
        port,       //8081        
        "xmlrpc_log"   
        );
当我从一个调用许多XMLRPC方法的脚本创建多个连接时,它工作得很好。 脚本如下所示: 脚本1: rpc.method1(参数); rpc.method2(参数); rpc.methodN(参数)

如果在执行此脚本时使用netstat和xmlrpc_日志检查服务器中的连接,则输出类似于xmlrpc-server:8081 xmlrpc-CLIENT:SOME TIME_WAIT。尽管XMLRPC_客户端IP相同,但在每次rpc.method调用之前,它都会创建一个新的连接

当我在同一个客户机中执行其中两个脚本时,就会出现问题。这意味着,一个脚本中的调用rpc.methodM(参数)与另一个脚本中的rpc.methodN(参数)在同一个客户端中同时执行。 这会在服务器中产生崩溃,XMLRPC-server会一直停机,直到重新启动进程

我阅读了《深渊帮助》,runOnce()方法没有帮助。默认情况下,如上所述调用构造函数,对于Abysis服务器,MaxConnections默认为30,超时为15秒

是否有一些配置可避免此崩溃?我需要同时支持多个客户端和多个连接

谢谢你的帮助

真诚地,
卢丘克斯。

嗯。显然,服务器正在处理多个连接并支持pthreads的多线程处理。问题应该出在我的RPC调用执行的代码中,我想这是因为存在可重入/线程安全问题

  • 在与其他项目进行了一些休息之后,我回到了这段代码,问题出现在一个自然语言库中,使用了一些不可重入的方法。他们解决了,我解决了:)-