gpt4 book ai didi

java - Android套接字连接组合发送

转载 作者:行者123 更新时间:2023-11-29 08:05:39 25 4
gpt4 key购买 nike

现在我已经与我的桌面服务器建立了一个 Socket 连接。总的来说它工作正常,我正在尝试找出任何剩余的错误。我无法解决的问题是当我向“发送”按钮发送垃圾邮件时。有时它会将本应单独发送的消息合并为一条消息。我相当确定这是一个 Android 问题,而不是我的服务器的问题。这是发生的情况的示例(服务器的控制台输出):

XX.XX.XX.XX: {"control":[],"commands":[]}
XX.XX.XX.XX: {"control":[],"commands":[]}
XX.XX.XX.XX: {"control":[],"commands":[]}
XX.XX.XX.XX: {"control":[],"commands":[]}{"control":[],"commands":[]}

这导致我的 JSON 解析器无法正常工作。我可以通过蓝牙或 Wifi 连接到我的服务器,并且我注意到合并消息的问题仅在使用 Wifi 而不是 BluetoothSocket 时发生。并不是说我认为 BluetoothSocket 不会滞后到像这样组合的程度,但那里运行的流量要少得多。有什么方法可以确保我的数据包在发送时不会被合并?我查看了 Socket 选项,但不知道要寻找什么。这是我如何发送的示例,非常基本:

mmDataOut.write(buffer);

其中 mmDataOut 只是一个 DataOutputStreambuffer 是一个 byte[]

此外,我添加了 asyncsocket 标记,因为我的服务器正在使用它们,不确定这是否会影响任何东西。

最佳答案

听起来您正在使用 TCP。这是 TCP 的预期行为,您需要升级解析器以支持它。

您不能安全地假设来自读取端的一大块数据将仅包含一个命令,此外,您也不能假设您将在一次读取中获得完整的命令。

关于java - Android套接字连接组合发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com