[英]Getting notified when Windows connects to a network
在Java程序(使用JNI)中,当新的连接可用时,有没有办法通过Windows操作系统通知? 目前,我必须检查这一点的唯一方法是轮询试图下载网页的功能。 如果下载成功并且没有抛出异常,那么我可以猜测是否存在Internet连接。
但是,更好的解决方案可能是这个:
以下执行ping操作,比下载页面更便宜,您可以更改超时:
InetAddress.getByName( "stackoverflow.com" ).isReachable( 4000 )
以低优先级放入线程循环:
while( ! InetAddress.getByName( "stackoverflow.com" ).isReachable( 4000 )) {
Thread.slepp( 1000L );
}
我没有更好。
InetAddress.isReachable
文档:
测试该地址是否可访问。 尝试尽力到达主机,但防火墙和服务器配置可以阻止导致无法访问状态的请求,同时可以访问某些特定端口。 如果可以获得特权,则典型的实现将使用ICMP ECHO REQUEST,否则它将尝试在目标主机的端口7(Echo)上建立TCP连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.