android read设置超时时间,在Android中的BluetoothSocket inputstream.read()中实现超时

你可以这样做:

InputStream in = someBluetoothSocket.getInputStream();

int timeout = 0;

int maxTimeout = 8; // leads to a timeout of 2 seconds

int available = 0;

while((available = in.available()) == 0 && timeout < maxTimeout) {

timeout++;

// throws interrupted exception

Thread.sleep(250);

}

byte[] read = new byte[available];

in.read(read);

这样,您最初可以从具有特定超时的流中读取.如果你想在任何阅读时间实现超时,你可以尝试这样的事情:

Thread readThread = new ReadThread(); // being a thread you use to read from an InputStream

try {

synchronized (readThread) {

// edit: start readThread here

readThread.start();

readThread.wait(timeOutInMilliSeconds);

}

catch (InterruptedException e) {}

使用此方法,您可能需要某种事件处理程序来通知您的应用程序,如果该线程实际读取了输入流中的内容.

我希望有所帮助!

– – 编辑:

我没有使用任何处理程序实现了一个示例.

Socket s = new Socket("localhost", 8080);

final InputStream in = s.getInputStream();

Thread readThread = new Thread(new Runnable() {

public void run() {

int read = 0;

try {

while((read = in.read()) >= 0) {

System.out.println(new String(new byte[]{ (byte) read }));

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

synchronized (readThread) {

readThread.start();

try {

readThread.wait(2000);

if(readThread.isAlive()) {

// probably really not good practice!

in.close();

System.out.println("Timeout exceeded!");

}

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务网格 ASM 年终总结:最终用户如何使用服务网格?

简介&#xff1a;本文不打算回顾 Istio 或是阿里云服务网格 ASM 的变化或趋势&#xff0c;我们来聊一聊阿里云 ASM 服务网格&#xff0c;它的最终用户是如何使用服务网格的。 作者&#xff1a;叶剑宏 背景 阿里云服务网格 ASM 于 2020 年 2 月公测&#xff0c;近 2 年的时间…

使用 nginx 轻松管理 kubernetes 资源文件

作者 | 江小南来源 | 江小南和他的小伙伴们引言nginx在传统的使用中&#xff0c;一般是作为反向代理或者负载均衡。但是它还有一个很优秀的能力常被人们所忽略。在kubernetes部署应用的过程中&#xff0c;会有大量的yaml等资源需要维护。集群内部维护起来不太方便&#xff0c;特…

Dubbo-go 优雅上下线设计与实践

简介&#xff1a;在分布式场景下&#xff0c;微服务进程都是以容器的形式存在&#xff0c;在容器调度系统例如 k8s 的支持下运行&#xff0c;容器组 Pod 是 K8S 的最小资源单位。随着服务的迭代和更新&#xff0c;当新版本上线后&#xff0c;需要针对线上正在运行的服务进行替换…

华为鸿蒙网络,这回真翻脸了?被谷歌“除名”,官宣鸿蒙手机版,华为:走着瞧...

与电脑系统类似&#xff0c;手机操作系统如今也已经被安卓和苹果的iOS瓜分殆尽&#xff0c;根据数据&#xff0c;安卓和iOS已经占据了手机操作系统99%以上的市场份额。不过由于iOS是苹果自研的封闭系统&#xff0c;所以在智能手机这么多年发展下来&#xff0c;也就自然地形成了…

SaaS服务的私有化部署,这样做最高效|云效工程师指北

简介&#xff1a;为了能够有效且高效地同时管理SaaS版本和私有化版本的发布过程&#xff0c;云效团队也结合云原生的基础设施和标准化工具&#xff08;比如helm&#xff09;进行了一系列的探索和实践&#xff0c;并将其中一些通能的能力进行了产品化。本文从问题本身出发&#…

普洛斯自研 DC Brain 系统,三大技术打造数据中心的智慧“大脑”

如今正值全球经济发展转型与变革的关键时期&#xff0c;随着数字社会的发展&#xff0c;算力作为重要的战略资源&#xff0c;是展现国家国际竞争力硬实力的关键之一。今年 2 月&#xff0c;国家发改部门联合多部门联合印发通知&#xff0c;在全国八地启动建设国家算力枢纽节点&…

阿里 BladeDISC 深度学习编译器正式开源

简介&#xff1a;随着深度学习的不断发展&#xff0c;AI模型结构在快速演化&#xff0c;底层计算硬件技术更是层出不穷&#xff0c;对于广大开发者来说不仅要考虑如何在复杂多变的场景下有效的将算力发挥出来&#xff0c;还要应对计算框架的持续迭代。深度编译器就成了应对以上…

html好看的搜索框样式,CSS美化的漂亮搜索框

CSS美化的漂亮搜索框body{font: normal 100% Arial,Helvetica,Verdana,sans-serif;color: #333;}p {padding: 12px 0;margin: 0;font-size: .8em;line-height: 1.5;}form {margin: 0;}#search_box {width: 201px;height: 31px;background: url(bg_search_box.gif);}#search_box…

浪潮“源”AI大模型如何求解数学应用题

编辑 | 宋慧 供稿 | 浪潮 “源1.0”大模型是浪潮信息发布的中文巨量模型&#xff0c;参数量高达2457亿&#xff0c;在中文语言能力理解和生成评测基准CUGE总榜中取得榜首&#xff0c;并获得语言理解&#xff08;篇章级&#xff09;、语言生成、对话交互、多语言、数学推理等5…

Quick BI产品核心功能大图(五)移动端:让数据在更多业务场景中流通

简介&#xff1a;将数据更好的融入日常工作中&#xff0c;一个重要的前提条件就是多端多渠道的数据触达和办公协同能力。 Quick BI凭借移动端交互体验&#xff0c;帮助用户随时随地便捷查看报表&#xff0c;并通过在线协同方式&#xff0c;追踪策略的执行落地。让数据在企业中流…

html5点击切换选项卡,简单纯js实现点击切换TAB标签实例

一个不需要jQuery实现的tab选项卡切换效果&#xff0c;代码简洁易用。默认是鼠标悬停显示tab效果&#xff0c;可将其中的onmouseover 修改为 onclick 点击效果使用方法&#xff1a;1、将附件中的index.html中的css样式以及代码部分拷贝到你需要的地方即可相关链接&#xff1a;几…

Dataphin产品核心功能大图(六)发布中心:生产和开发隔离模式下的保护伞

简介&#xff1a;Dataphin&#xff0c;用中台方法论打造企业级好数据。Dataphin是阿里巴巴集团OneData数据治理方法论内部实践的云化输出&#xff0c;一站式提供数据采、建、管、用全生命周期的大数据能力&#xff0c;以助力企业显著提升数据治理水平&#xff0c;构建质量可靠、…

当英特尔 OpenVINO 遇上微软 Azure,AI在边云协同的新方案

作者 | 宋慧 出品 | CSDN云计算 数字化浪潮下&#xff0c;越来越多的终端 IoT 设备接入网络&#xff0c;边缘的数据量与分析需求也随之增加。根据 Eclipse 对边缘负载的分析显示&#xff0c;人工智能是边缘计算中占比最高的负载之一&#xff0c;高于控制逻辑、数据分析等负载所…

html5 vr效果,HTML5 Three.js 虚拟现实小实验(VR Experiment)

HTML导入代码模板&#xff1a;/*! Reticulum - v1.0.12 - 2015-08-17* https://gqpbj.github.io/examples/basic.html** Copyright (c) 2015 Godfrey Q;* Licensed under the MIT license */var Reticulum (function() {var INTERSECTED null;var collisionList [];var rayc…

工程设计论——如何写好工程代码

简介&#xff1a;设计是在对需求的认知不完整的情况下&#xff0c;对被设计对象进行求解的一个过程。这就迫使我们需要一边认识被设计对象&#xff0c;一边进行求解。为了并行化地进行这一过程&#xff0c;也为了使得对被设计对象地认识有初步的研究工具和基础&#xff0c;我们…

阿里云能耗宝即将发布,助力中小企业绿色升级,参与碳中和万亿市场

阿里云能耗宝新品发布会由阿里云-企业云服务-能耗云团队主办&#xff0c;将于2022年2月23号举行&#xff0c;本期发布会将为企业呈现“双碳”背景下的一站式服务。通过阿里云能耗宝&#xff0c;企业如何更加高效便捷地核算碳排放量、制定节能降碳方案、规划碳中和路径。 2020年…

关于网络安全,企业领导者应该了解的3件事

作者&#xff1a;Veeam 企业战略副总裁 Dave Russell 随着全球疫情期间世界各地数百万人转向远程工作&#xff0c;网络安全再次成为关注的焦点。勒索软件是一种通过网络传播的恶意软件&#xff0c;它通过感染计算机并限制对关键用户数据的访问来获取赎金。每起勒索软件攻击事件…

鸿蒙关键技术研究,鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析HarmonyOS源码 | v54.02...

百篇博客系列篇.本篇为:下图是一个可执行文件编译,链接的过程.本篇将通过一个完整的小工程来阐述ELF编译,链接过程,并分析.o和bin文件中各区,符号表之间的关系.从一个崭新的视角去看中间过程,阅读之前建议先看准备工作先得有个小工程,麻雀虽小,但五脏俱全,标准的文件夹和Makefi…

敏捷研发项目,我们该如何度量?

简介&#xff1a;作为项目负责人&#xff0c;我们如何及时获悉当前项目的最新进展和问题&#xff0c;了解项目的整体状况&#xff1f;作为项目管理人员&#xff0c;我们如何跟进和推进项目的正常进行&#xff1f;如何借助云效效能洞察平台 Insight&#xff0c;帮助项目管理者及…

iofsstat:帮你轻松定位 IO 突高,前因后果一目了然 | 龙蜥技术

简介&#xff1a;磁盘被打满到底是真实的业务需求量上来了呢&#xff1f;还是有什么野进程在占用 IO&#xff1f; iofsstat 帮你精准定位。 编者按&#xff1a;sysAK&#xff08;system analyse kit&#xff09;&#xff0c;是龙蜥社区系统运维 SIG 下面的一个开源项目&#x…