樱桃爸爸 2021-05-08 13:33 采纳率: 100%
浏览 40
已结题

求助 python json服务端与客户端之间传送出错

我在一台电脑上运行服务端和客户端,成功。但把客户端放到另外一台电脑上的安卓模拟器里,就出错。我传送的只是一些文字和数字而已,没有特殊字符。

我把服务端根据算法生成的文件变成JSON文件,切成1024大小,分多次发送。

当8次发送的时候(一个小点的数据流),完全正常。当13次发送的时候(另外一个大一点的数据流),就出现故障了。

adb现在乱码,看不到接收到的JSON是怎样的,但根据没乱码之前的经验,应该是不完整的。

我在接收recv这块,做的是while循环,当收到的数据为0的时候,则中断接收。我设定的是recv(20480),正常的那个是接收了2次(服务端发送了8次 1024),有故障的那个是接收了3次(服务端发送了13次1024)。我在客户端设置了 RECV_BUF_SIZE = 204800。

没有做切片发送的时候,做了尾标识方法的接收方法,但也不好使。

请问这是什么问题,该如何解决?

  • 写回答

4条回答 默认 最新

  • benbenli 2021-05-08 14:10
    关注

    我觉得问题在于:当收到的数据为0的时候,则中断接收。

    同一太机器上传输速度不是问题。不同机器,数据量大的时候,传输速度慢。服务端很又可能刚接受一帧数据马上再接受时还没有数据过来,返回0了。应该以别的方式结束接受。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月12日
  • 已采纳回答 10月12日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分