Thrift第七课服务器多线程发送异常

场景

成都创新互联是一家集网站建设,高明企业网站建设,高明品牌网站建设,网站定制,高明网站建设报价,网络营销,网络优化,高明网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

C++服务器端为每一个客户端建立多线程发送,没有添加锁,会触发异常:received invalid message type 3 from client。导致服务器端主动断开跟客户端的连接

打印出错的代码在TDispatchProcessor.h文件

相关堆栈代码:

 apache::thrift::TOutput::errorTimeWrapper(const char * msg) 行 134C++

 apache::thrift::TOutput::printf(const char * message, ...) 行 42C++

apache::thrift::TDispatchProcessor::process(boost::shared_ptr in,boost::shared_ptr out, void * connectionContext) 行 116C++

结论

调用发送的接口最好加锁,或者是单线程发送


文章名称:Thrift第七课服务器多线程发送异常
文章起源:http://azwzsj.com/article/gpjdpd.html