2012-01-13 61 views
2

是否有可能使用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

回答

1

據我所知,Java沒有檢測到這個事件 - 它非常適合操作系統。你可以做的是每隔一段時間輪詢一次可用的網絡接口。

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

這是我懷疑的。如果可以,我想避免輪詢。我可能只需要使用用戶啓動的檢查/搜索。 – Kerry 2012-01-14 09:16:33

1

您可以做的最好的方法是通過創建一個定期輪詢您可以信任的URL的線程來檢測您是否具有網絡連接。在Windows中檢測網絡事件需要對Windows API進行JNI調用。

+1

投票哪個網址?我認爲,他並不意味着要檢測Internet連接。 「當我將ethenet適配器連接到集線器時,會出現'連接性'」...他想要檢測以太網連接事件,因爲它會被Windows檢測到。 – gtiwari333 2012-01-13 13:37:19

+0

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