捕获网络连接事件

问题描述:

是否有可能使用Java捕获网络事件?捕获网络连接事件

例如,当我将ethenet适配器连接到集线器时,会出现'连接性',这可以通过Windows XP检测到,并向用户显示“泡泡”。 Windows是否也广播了可以被应用程序捕获的事件,更具体地说是用Java编写的应用程序?

+0

我不认为有任何这样的事件会被广播,因为我见过的所有应用程序都在继续检查“手动”连接是否可用。 – Viruzzo 2012-01-13 13:33:24

+0

@Kerubu,你想检查局域网连接或互联网连接? – gtiwari333 2012-01-13 13:55:54

+0

局域网连接。 – Kerry 2012-01-13 19:19:15

据我所知,Java没有检测到这个事件 - 它非常适合操作系统。你可以做的是每隔一段时间轮询一次可用的网络接口。

Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces(); 
+0

这是我怀疑的。如果可以,我想避免轮询。我可能只需要使用用户启动的检查/搜索。 – Kerry 2012-01-14 09:16:33

您可以做的最好的方法是通过创建一个定期轮询您可以信任的URL的线程来检测您是否具有网络连接。在Windows中检测网络事件需要对Windows API进行JNI调用。

+1

投票哪个网址?我认为,他并不意味着要检测Internet连接。 “当我将ethenet适配器连接到集线器时,会出现'连接性'”...他想要检测以太网连接事件,因为它会被Windows检测到。 – gtiwari333 2012-01-13 13:37:19

+0

是的,这正是我的意思。 – Kerry 2012-01-13 19:18:35