python - thrift 返回 TSocket read 0 bytes 求助!!!!

 天秤小果冻cici 发布于 2022-10-27 05:29

关键代码(服务器1 start_server.py):

        # Server 端对中文字段处理
         if isinstance(value, unicode):
             value = value.encode("utf8")
         setattr(tobj, k, value)

关键代码(服务器2 start_server.py):

        # Server 端对中文字段处理
         if isinstance(value, unicode):
             pass
         setattr(tobj, k, value)

这样看可能更清楚:

client主要代码:

client.get_user(1)

操作:
python start_server.py

python client.py

主要现象:

服务器1返回正常数据。
服务器2返回正常数据。

但是,如果机器1用机器2的代码,或者服务器2用服务器1的代码,那么返回:
TSocket read 0 bytes

我的问题:

为什么相同的代码在两台配置相同的机器会出现不同的结果(一个正常一个不正常)?

服务器相关配置:
服务器1:
Ubuntu 14.04.5 LTS
Python 2.7.6
Apache Thrift 版本 Thrift version 0.10.0

服务器2:
Ubuntu 14.04.2 LTS
Python 2.7.6
Apache Thrift version 0.10.0

其它依赖均从requirements.txt安装。
具体内容:
sqlalchemy==1.0.12
MySQL-Python==1.2.5
thrift==0.10.0

顺便附上我的一篇博客内容:thrift中的一些坑。
原来并不是版本问题。

1 个回答
  • 是因为客户端发过去的字符不一样导致的吧

    2022-10-27 05:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有