gpt4 book ai didi

java - J2ME,InputStream 在通过蓝牙接收到 40K 数据后挂断

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:35 25 4
gpt4 key购买 nike

在通过蓝牙从 PC 向我的手机 (N73) 发送数据时,输入流似乎挂断了。InputStream 派生自 StreamConnection。

PC 软件内置于VB.net。在 Java ME 中移动。

InputStream 是否有在读取大块数据时需要清空的内部缓冲区?正在以 10Kb 到 15Kb 范围的 block 接收数据,并且在接收到第 3 个 block 后停止读取。奇怪的是,我没有收到任何异常(exception)情况。

我浏览了 InputStream 类 API 文档,找不到任何 InputStream clear 或 empty 方法。只有一个reset()方法,不知道有什么用?

最佳答案

InputStream.reset() 是您在使用 Inpustream.mark() 强制 InputStream 创建一个内部缓冲区之后调用的方法多次读取相同的数据,假设 InputStream 通过在调用 InputStream.markSupported() 时返回 true 来支持它。

至于数据传输问题,我们讨论的是在 Symbian OS 9.1 上运行 Series60 第三版的手机。考虑到 JSR-82 的 Symbian 测试有多广泛,像 InputStream 上的 40k 限制这样简单的实现错误似乎不太可能。

如果服务器以低得多的比特率发送较小的数据 block ,手机的行为会发生变化吗?
手机在读取更多数据之前是否处理接收到的数据?
MIDlet 还做什么?即使在蓝牙 InputStream 阻塞之后,其他一切是否都按预期工作?

我确实记得 JSR-82 实现中的一个相当重要的错误,它可能只有在创建初始 N73 固件后才被修复:在任何事件调度线程中根本不使用蓝牙(不是来自 之类的任何方法) MIDlet.startApp(), Canvas.keyPressed(), CommandListener.commandAction(), PlayerListener.playerUpdate().. .).

最好只在您自己编写的 Thread.run() 方法中使用蓝牙。

关于java - J2ME,InputStream 在通过蓝牙接收到 40K 数据后挂断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1755457/

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