首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BufferedInputStream和阻塞

BufferedInputStream和阻塞
EN

Stack Overflow用户
提问于 2011-08-25 22:26:56
回答 2查看 5K关注 0票数 6

我正在使用BufferedInputStream从套接字读取数据。BufferedInputStream的内容如下:

代码语言:javascript
复制
socketInput.read(replyBuffer, 0, 7);

它被实例化为

代码语言:javascript
复制
socketInput = new BufferedInputStream(mySocket.getInputStream());

mySocket被定义为private Socket mySocket;

mySocket = new Socket(ipAddress, port);实例化mySocket

我已验证mySocket是否已连接到我的设备。我可以向我的设备发送数据;但是,由于未知的原因,我无法从我的设备接收数据,但这不是问题所在。

如果我的BufferedInputStream没有读取任何数据,我希望它在100毫秒后返回。可以将BufferedInputStream设置为执行此操作吗?现在,它会无限期地阻塞。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-25 22:37:27

使用缓冲流从套接字读取通常不是一个好主意,原因正是如此:如果它看不到足够的数据来填充其内部缓冲区(它将超过7个字符!),它将永远等待。没有办法让它超时。只需直接使用SocketInputStream,问题就会消失。

票数 4
EN

Stack Overflow用户

发布于 2011-08-25 22:37:54

为您的套接字指定100ms超时。setSoTimeout

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

https://stackoverflow.com/questions/7192103

复制
相关文章

相似问题

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