首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XMLRPC - C++中处理多个连接Abyss服务器

如何在XMLRPC - C++中处理多个连接Abyss服务器
EN

Stack Overflow用户
提问于 2011-07-11 12:03:19
回答 1查看 782关注 0票数 1

下一个场景是:我有一个XMLRPC++应用程序,侦听PORT=8081上的连接。它使用xmlrpc-c库实现一个Abyss服务器,如下所示:

代码语言:javascript
复制
xmlrpc_c::serverAbyss myAbyssServer(
        myRegistry, //handler of methods
        port,       //8081        
        "xmlrpc_log"   
        );

当我从一个调用许多XMLRPC方法的脚本创建多个连接时,它可以正常工作。脚本是这样的: Script1: rpc.method1(参数);rpc.method2(参数);rpc.methodN(参数);

如果我在执行此脚本时使用netstat和xmlrpc_log检查服务器中的连接,则输出类似于xmlrpc_log:8081 xmlrpc_log: TIME_WAIT。尽管XMLRPC_CLIENT IP是相同的,但在rpc.method调用之前,它会创建一个新的连接。

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

我阅读了Abyss,runOnce()方法也没有帮助。默认情况下,调用上述构造函数时,Abyss服务器的MaxConnections默认为30,超时值为15 segs。

有什么配置可以避免这种崩溃吗?我需要同时支持多个客户端,同时支持多个连接。

感谢与此相关的帮助,

真的,卢克斯。

EN

回答 1

Stack Overflow用户

发布于 2011-07-15 08:18:31

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

  • 在与其他项目工作了一些中断之后,我回到了这段代码中,问题出现在一个自然语言库中,其中有一些不是可重入的方法。他们解决了,我解决了:) -
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6649802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档