我有一個tcp鏈接與服務器在Linux上的套接字。 我使用select()函數來監視是否有數據,如果有,我使用recv來獲取數據。tcp socket是否能注意到網絡破壞的異常?
現在我想知道網絡是否損壞(如電纜被移除)。 但即使監視異常,我也無法獲得例外。
FD_SET(m_socket, &except_fds);
int result = select(m_socket + 1, &fds, 0, &except_fds, timeout == -1 ? 0 : &tv);
什麼困惑我的是有類似的實現(java.net.Socket中)在Android,我可以馬上趕異常,如果我的手機設置爲飛行模式。
是select()實現平臺特定的?
總之,如果這種方法可以用來監測網絡的破損?如果沒有,有沒有解決方案?