tframedtransport php,thrift中的TNonblockingServer在TFramedTransport打开时崩溃

<>我一直试图在C++中实现一个节省服务器与Python客户端通信。在

这是我的代码:

C++服务器:shared_ptr _handler (new myHandler());

shared_ptr _processor (new myService(_handler));

shared_ptr _protocolFactory (new TBinaryProtocolFactory());

shared_ptr _threadManager = ThreadManager::newSimpleThreadManager(15);

shared_ptr _threadFactory(new PosixThreadFactory());

_threadManager->threadFactory(_threadFactory);

_threadManager->start();

shared_ptr _server(new TNonblockingServer(_processor, _protocolFactory, 9090 ,_threadManager));;

_server->serve();

Python客户端代码:

^{pr2}$

当我启动服务器,然后启动客户端时,会得到以下结果:

在客户端(Python):./myPythonExec.py

connection success!

socket.error: [Errno 104] Connection reset by peer

在服务器端(c++):assertion " 0 " failed

0 0x00007ffff0942425 in __GI_raise (sig=) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64

1 0x00007ffff0945b8b in __GI_abort () at abort.c:91

2 0x00007ffff093b0ee in __assert_fail_base (fmt=, assertion=0x7ffff1438f1a "0",

file=0x7ffff1439298 "src/server/TNonblockingServer.cpp", line=, function=) at assert.c:94

3 0x00007ffff093b192 in __GI___assert_fail (assertion=0x7ffff1438f1a "0", file=0x7ffff1439298 "src/server/TNonblockingServer.cpp",

line=558, function=0x7ffff1439c60 "void apache::thrift::server::TNonblockingServer::TConnection::workSocket()") at assert.c:103

4 0x00007ffff14336e4 in apache::thrift::server::TNonblockingServer::TConnection::workSocket (this=0x7fffc0004ac0)

at src/server/TNonblockingServer.cpp:558

5 0x00007ffff11ed94c in event_base_loop () from /usr/lib/libevent-2.0.so.5

我使用的是libthrift 0.8.0,其pb值与libthrift 0.9.1相同

使用C++上的TSimeServer和客户端上的TBuffeRead传输时,它工作得很好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值