首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >J2ME,InputStream在通过蓝牙接收40K数据后挂起

J2ME,InputStream在通过蓝牙接收40K数据后挂起
EN

Stack Overflow用户
提问于 2009-11-18 19:43:28
回答 1查看 1.8K关注 0票数 3

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

上位机软件是用VB.net构建的。Java ME中的Mobile。

在读取大量数据时,InputStream是否有需要清空的内部缓冲区?正在接收10Kb到15Kb范围的区块中的数据,在接收到第三个区块后停止读取。奇怪的是,我没有收到任何异常。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-18 22:01:49

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

至于数据传输问题,我们讨论的是一款基于Symbian OS9.1的Series60第三版手机。考虑到Symbian对JSR-82的广泛测试,在InputStream上出现像40k这样简单的实现错误似乎是不太可能的。

如果服务器以更低的比特率发送更小的数据块,手机的行为会发生变化吗?

在读取更多数据之前,手机是否会处理接收到的数据?

MIDlet还在做什么?即使在蓝牙InputStream块之后,其他一切也能正常工作吗?

我确实记得JSR-82实现中的一个相当重要的错误,它可能只有在最初的N73固件创建之后才能修复:在任何情况下都不要使用蓝牙分派线程(不是通过任何方法,如MIDlet.startApp()Canvas.keyPressed()CommandListener.commandAction()PlayerListener.playerUpdate()...)。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1755457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档