我正在使用BufferedInputStream从套接字读取数据。BufferedInputStream的内容如下:
socketInput.read(replyBuffer, 0, 7);它被实例化为
socketInput = new BufferedInputStream(mySocket.getInputStream());mySocket被定义为private Socket mySocket;
由mySocket = new Socket(ipAddress, port);实例化mySocket
我已验证mySocket是否已连接到我的设备。我可以向我的设备发送数据;但是,由于未知的原因,我无法从我的设备接收数据,但这不是问题所在。
如果我的BufferedInputStream没有读取任何数据,我希望它在100毫秒后返回。可以将BufferedInputStream设置为执行此操作吗?现在,它会无限期地阻塞。
发布于 2011-08-25 22:37:27
使用缓冲流从套接字读取通常不是一个好主意,原因正是如此:如果它看不到足够的数据来填充其内部缓冲区(它将超过7个字符!),它将永远等待。没有办法让它超时。只需直接使用SocketInputStream,问题就会消失。
发布于 2011-08-25 22:37:54
为您的套接字指定100ms超时。setSoTimeout
https://stackoverflow.com/questions/7192103
复制相似问题