看视频学用Thrift时遇到的
环境:win7, thrift_0.12.0, python37, jdk1.8, IDE:IJ+PC
本机java客户端 连 本机python服务器
部分代码:
# ...
serverSocket = TSocket.TServerSocket(port=8848)
transportFactory = TTransport.TFramedTransportFactory()
protocolFactory = TCompactProtocol.TCompactProtocolFactory()
server = TServer.TThreadedServer(processor, serverSocket, transportFactory, protocolFactory)
server.serve()
TTransport transport = new TFramedTransport(new TSocket("127.0.0.1", 8848), 600);
TProtocol protocol = new TCompactProtocol(transport);
PersonService.Client client = new PersonService.Client((protocol));
try {
transport.open();
//TODO
}catch(Exception e){
e.printStackTrace();
}finally {
transport.close();
}
起py服务器 运行java客户端
抛异常:TTransportException…Connection refused: connect
百度后检查IP, 端口, 防火墙都没事
服务器启动后netstat -ano | findstr port也是监听状态
最后还是看了眼官方文档
py服务器建socket的参数多了host
serverSocket = TSocket.TServerSocket(host='127.0.0.1', port=8848)
加上就能连了
百度其他资料也有说需要去掉host才不报错的 可能是环境不同, 或非本地连本地引起的