很晚很冷 。。。问个简单的问题,顺便散分....

大_爱 2011-03-23 11:19:40
不知道有没有人哈,大多数这个时候我都睡咯。。。。。

我有个检查网络连接状态的方法,姑且叫他check() 吧。这个check() 在正常情况下能放回一个值给我,如果网络突然断了,这个方法会阻塞一会。这样给人的感受就不好了,我想规定一个时间如500ms,如果超过这个时间,check()方法就返回一个错误信息给我。这个check()方法是人家要调用的。不知可有高人呀。
...全文
253 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2011-03-24
  • 打赏
  • 举报
回复
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface interf = interfaces.nextElement();
if (interf.isUp() && !interf.isLoopback())
return true;
}
大_爱 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jamesliulyc 的回复:]

linux里面的shell有定时的,你可以用里面的命令crontab ……
[/Quote]
就是掉用的Linux中的命令被阻塞了呀!比如你在linux下输入一个命令,而这个命令会等很久才会有结果,我的方法是根据他的结果做出相应的操作,他阻塞了,那么调用的方法也就阻塞了。
JamesLiu 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 beefcattlexiaoyang 的回复:]
引用 9 楼 bao110908 的回复:

不知道那个 check 是怎么实现的,如果用的是 socket 的话,那其本身就自带有连接超时检查的

本身是不带的,这个check()方法是调用Linux的Shell文件,由Shell返回结果的。
[/Quote]
linux里面的shell有定时的,你可以用里面的命令crontab -e
然后每隔一段时间就执行你的程序
大_爱 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bao110908 的回复:]

不知道那个 check 是怎么实现的,如果用的是 socket 的话,那其本身就自带有连接超时检查的
[/Quote]
本身是不带的,这个check()方法是调用Linux的Shell文件,由Shell返回结果的。
  • 打赏
  • 举报
回复
不知道那个 check 是怎么实现的,如果用的是 socket 的话,那其本身就自带有连接超时检查的
zqfddqr 2011-03-24
  • 打赏
  • 举报
回复
再开个线程 check 被别人调用的方法 开个线程check 超时直接返回了

也就是说你的方法是秒内返回的 至于出不出来结果 由另一个线程决定
大_爱 2011-03-24
  • 打赏
  • 举报
回复
结贴了,谢谢(逸飞)提供思路。现在用的并发这种效果。谢谢阿宝提供方案。谢谢大家的捧场!!!
大_爱 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 qybao 的回复:]

check方法是自己写的吗?可以试试
如果是自己写的,可以在check方法里启动一个线程去掉用shell,同时用一个线程监控调用shell线程的状态和时间,如果调用shell的线程结束,则返回状态,如果超时,则启动一个shell去kill之前的shell
[/Quote]
这个方法还比较好,不过kill之前的Shell又称问题了,而且,这个线程杀掉之后得放回一个值给我才行,用线程很不好返回一个值!
lonelyfire 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 qybao 的回复:]

check方法是自己写的吗?可以试试
如果是自己写的,可以在check方法里启动一个线程去掉用shell,同时用一个线程监控调用shell线程的状态和时间,如果调用shell的线程结束,则返回状态,如果超时,则启动一个shell去kill之前的shell
[/Quote]

Good idear~
suntingtingonly 2011-03-24
  • 打赏
  • 举报
回复
看看 有没有其他的方案
zn85600301 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 qybao 的回复:]

check方法是自己写的吗?可以试试
如果是自己写的,可以在check方法里启动一个线程去掉用shell,同时用一个线程监控调用shell线程的状态和时间,如果调用shell的线程结束,则返回状态,如果超时,则启动一个shell去kill之前的shell
[/Quote]

这个是个不错的方案~
qybao 2011-03-24
  • 打赏
  • 举报
回复
check方法是自己写的吗?可以试试
如果是自己写的,可以在check方法里启动一个线程去掉用shell,同时用一个线程监控调用shell线程的状态和时间,如果调用shell的线程结束,则返回状态,如果超时,则启动一个shell去kill之前的shell
游一游走一走 2011-03-24
  • 打赏
  • 举报
回复
帮你顶起,这问题还无解决?关注下是否有高人有更好的实现........
uastation 2011-03-24
  • 打赏
  • 举报
回复
Check()方法,你可以写个定时器调用~
安卓机器人 2011-03-24
  • 打赏
  • 举报
回复
试试运气
大_爱 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jamesliulyc 的回复:]

如果你在java里面可以用定时器java.util.Timer,然后timer.schedule,你的执行调度的类需要继承TimerTask(java.util.TimerTask)
具体例子网上多的是,你可以查一下,就不多废话了
[/Quote]
这种方式估计又点行不通,如果只为功能的话,可是考虑这样做,有其他因素的!
JamesLiu 2011-03-23
  • 打赏
  • 举报
回复
如果你在java里面可以用定时器java.util.Timer,然后timer.schedule,你的执行调度的类需要继承TimerTask(java.util.TimerTask)
具体例子网上多的是,你可以查一下,就不多废话了
huntor 2011-03-23
  • 打赏
  • 举报
回复
可以避免阻塞
大_爱 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huntor 的回复:]
java.util.concurrent.Future
java.util.concurrent.FutureTask
javax.swing.SwingWorker
[/Quote]
javax.swing.SwingWorker 这个应该没什么用,我不做界面。因为这个方法是给人家调用的。我等很久那么人家也会等很久。

java.util.concurrent.Future
java.util.concurrent.FutureTask
这两个东西是并非使用的,这个应该没有还没达到那种高度吧
yyx520aiy520 2011-03-23
  • 打赏
  • 举报
回复
怎么那么多分啊!我想要分发帖子 哎。
加载更多回复(3)
本课程针对鸿蒙认证HCIA-HarmonyOS Device Developer,完整细致讲解了官方培训教材,并且根据朱老师自己学习考证的过程,做了一些额外的补充讲解和扩展。 本课程适合有意向去考取鸿蒙认证设备开发的人。 1.华为认证体系(1)鸿蒙认证隶属于华为认证体系,官网:https://e.huawei.com/cn/talent/#/cert(2)华为认证全景图,见官网(3)华为认证三级证书等级:HCIA(工程师)、HCIP(高级工程师)、HCIE(行业专家) 2.鸿蒙认证体系(1)目前只有HCIA级别,2021.7.16左右首发(2)分HCIA-HarmonyOS Device Developer(考试代码H14-221)和HCIA-HarmonyOS Application Developer(考试代码H14-211)两个方向,本课程面向Device Developer方向。(3)按照华为一贯风格,HCIP-HarmonyOS会在半年到一年后推出(4)HCIE暂不可预计,但一定会出,因为HarmonyOS是华为重点战略,投入巨大,不可能随意放弃 3.鸿蒙认证含金量高不高,是否值得考?(1)华为认证已有20年历史,起家于网络ICT领域,效仿思科认证,到现在全球高度认可,超强背书(2)HarmonyOS认证是华为认证官方推出,权威性高,且是目前及很长一段时间唯一鸿蒙认证证书(3)朱老师亲身学习并考试验证,考试还是有一定难度,这保证了证书不会烂大街(4)HarmonyOS认证本身大纲设计优质,课件优秀,是学习鸿蒙系统的好资料 4.什么人适合考鸿蒙认证(1)出于工作需要或者个人兴趣,已经在学习鸿蒙的人。考个证傍身,反正要学不考白不考。(2)在学习嵌入式linux、单片机等技术,希望找这方面工作的人。鸿蒙认证可能是适合考证的唯一选择。(3)在软通动力、中软国际、润和软件等华为深度合作外包公司工作的人。(4)相关专业大学生。含金量的证书越多越有利于找工作、考研保研等竞争。 5.整个课程大概介绍(1)我的目标是沿着鸿蒙认证体系做下去,依次覆盖IA、IP、IE(2)本课程面向HCIA级别,Device方向,暂时只考虑做Device方向(3)本课程设计原则1:面向认证考试拿证(4)本课程设计原则2:系统学习并深入理解鸿蒙,顺便拿证。并为后续更高级别证书打下基础(5)本课程素材来源:一是鸿蒙认证官方资料、二是鸿蒙官网、三是朱老师根据自己学习经验和考试经验做的必要扩展外部资源。 

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧