收藏
回答

TCPSocket.write发送Arraybuffer的缓冲区大小多少?

TCPSocket.write发送Arraybuffer的缓冲区大小多少?跟手机有关? 目前遇到的情况是Arraybuffer缓冲完毕才进行TCP发送,

拆分发送同样是等待整个Arraybuffer发送完毕,接收端才开始处理。实测超过2.5M会有异常。

回答关注问题邀请回答
收藏

1 个回答

  • 风清雾云开见日出
    风清雾云开见日出
    03-22

    是你的处理方法有问题吧,只要你在数据包通讯包设计:包头+数据总长度+数据+校验码+包尾,就算限制每包发送100个字节,每包数据接收从收到包头开始累加,然后根据数据总长度计算这包数据的长度,等缓存数据达到长度就校验数据包,比如校验码+包尾正确就处理这包数据,不正确就丢弃这包数据(实测超过2.5M会有异常,除非是你的手机缓存空间不够)。

    03-22
    有用
    回复 6
    • LIVE..
      LIVE..
      发表于移动端
      03-22
      整包确实是(包头+数据总长度+数据+校验码+包尾),现在是发送到打印机,数据量大于2.5M,打印机接收端数据异常。请教在小程序怎么查看手机缓存大小?测试过程旧手机需拆分更小才能发送。
      03-22
      回复
    • 风清雾云开见日出
      风清雾云开见日出
      03-22回复LIVE..
      【数据量大于2.5M,打印机接收端数据异常。请教在小程序怎么查看手机缓存大小?测试过程旧手机需拆分更小才能发送。】你这个是打印机接收端的问题啊,应该是打印机接受处理数据异常,和发送端无关,看看你的打印机二次开发文档,是有有数据大小限制
      03-22
      回复
    • LIVE..
      LIVE..
      发表于移动端
      03-22回复风清雾云开见日出
      感谢回复!!我把后端下载同样的数据文件用python方式打印正常的,python打印时打印机响应没有延迟,而小程序下载较大打印数据后write到打印机明显延迟几秒,打印机才有反应。现在还不算了解微信小程序执行tcpsocket.write时缓冲到TCP传送的过程。
      03-22
      回复
    • 风清雾云开见日出
      风清雾云开见日出
      03-22回复LIVE..
      用websocket的试试
      03-22
      回复
    • LIVE..
      LIVE..
      03-22
      好的..感谢!
      03-22
      回复
    查看更多(1)
登录 后发表内容