2012-05-25 6 views
2

나는 네트워크 연결 해제에 대해 내 프로그램을 강력하게하려고합니다. 지금 당장 OS에서 이더넷 네트워크를 비활성화하면 (우분투 11.10은 끝났지 만 그다지 중요하지 않습니다), 일단 네트워크가 다시 활성화되면 모든 것이 정상적으로 작동합니다.차이점 이더넷 케이블을 뽑고 OS에서 이더넷 네트워크를 비활성화하는 것 사이

이제이 테스트는 이더넷 케이블을 뽑는 것과 같았습니다. 그러나 그렇게하지 않으면 내 프로그램이 갑자기 종료됩니다.

이 두 시나리오의 차이점과 두 가지를 모두 감지하는 방법을 알고 싶습니다. Qt와 C++에서 QTcpSockets를 사용하고 있습니다.

또한 wifi가 더 이상 감지되지 않으면 이더넷 케이블을 분리하는 것과 같습니다. OS에서 비활성화하면 이더넷 네트워크를 비활성화하는 것과 같습니다. 내가 맞습니까?

+0

지금까지 연결 해제를 처리하는 방법을 알려주십시오 (의사 코드도 좋을 것입니다). –

+0

일반적으로 클라이언트가 있고 어떤 오류가 발생하더라도 다시 연결해야합니다. –

+0

물론, 내가받는 각 오류로 다시 연결하려고합니다. 내 프로그램이 충돌하는 경우 액세스하려고하는 일부 변수가 null로 설정되어 있어야합니다. 그러나 내가 알고 싶은 것은이 두 시나리오의 차이점입니다. –

답변

0

드라이버가 활성화되면 다른 시나리오를 관리하는 OS 켄넬에서 실행되는 프로그램이 있음을 의미합니다. 예를 들어 케이블 분리시 링크가 끊어집니다. 그리고 저전력 모드로 들어가십시오. 드라이버를 비활성화 할 때 장치를 관리 할 수있는 펌웨어가 장치에 있거나 장치가 꺼져있을 수 있습니다.