2009-12-02 50 views
1

是否有人有他們的代碼片段,檢查是否在一臺機器上啓用網絡,並具有活動的IP地址。網絡結束了嗎? C++ Fedora/Unix

我有一個連接到其他客戶機的網絡軟件,雖然它在機器連接時工作,但如果我拔掉電纜或禁用網絡,它會拋出一個完整的例外情況。

這將是很好,只是把支票放在上面:d提前

回答

3

網絡始終處於動態狀態,在運行開始時進行簡單的檢查對於正確的操作是不夠的。 因此,不幸的是,你必須檢查任何網絡操作的狀態。

至於甚至沒有啓動程序與網絡斷開狀態...考慮如果您的程序在計算機崩潰或電源故障後自動啓動。或者其他任何組件遭受過類似的事情或故障。這種情況經常出乎意料地發生,並且在n + 1臺計算機上重新啓動程序只是因爲一些dweeb在網絡電纜上偶然發現是非常煩人的。

爲了檢查網絡的一般可用性,您可以隨時「ping -q -c 1 127.0。 0.1「返回值是1,如果localhost不應答。這應該在啓動腳本中,在應用程序中完全不必編碼。

+0

我有一個ping功能:我可以使用它,謝謝 – 2009-12-02 11:07:18

2

感謝我認爲你可以得到你想要與「使用ifconfig」在終端命令是什麼。

+0

我認爲它應該是「ipconfig」 – Ashish 2009-12-02 10:49:35

+0

不在Linux/Unix上。只有Windows決定更改命令的名稱。 – 2009-12-02 10:50:23

+0

和「ping」也是檢查機器是否可到達的必要條件。 – Ashish 2009-12-02 10:51:00

3

你或許應該抓住例外情況:否則如果機器連接到網絡,但沒有其他適當的機器,則會出現問題。

+0

Im已經捕捉到了例外,並且我完全理解了它們,但是在我啓動網絡之前,還有很多前置事項。如果沒有網絡,所有的預處理都是無用的。檢查網絡是否正常工作將會非常有用 – 2009-12-02 10:58:07

+0

因此,重新排序代碼 - 檢查是否可以連接到(至少一個)適當的客戶端,然後進行計算,然後與通信連接客戶端。 – 2009-12-02 12:55:54