네트워크 연결이 필요한 도구를 실행하는 응용 프로그램이 있습니다. 이제 내 목표는 사용자가 네트워크에 연결되어 있는지 확인하는 것입니다. 사용자가 네트워크에 연결되어 있지 않으면 직접 진행하지 않고 곧바로 오류를 표시 할 수 있습니다. 그가 가지고 있다면, 그는 내 신청서로 계속 일할 수 있습니다. 그래서 내 기본 필요는 사용자가 네트워크에 연결되어 있는지 여부를 확인하는 것입니다. Qt 4.4를 통해 어떻게 얻을 수 있습니까? Windows XP를 사용하고 있습니다.Qt 4.4를 사용하여 네트워크 연결 확인
6
A
답변
10
이 코드는 도움이됩니다.
Qt는 4.7로#include <QtCore/QCoreApplication>
#include <QtNetwork/QNetworkInterface>
bool isConnectedToNetwork()
{
QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();
bool result = false;
for (int i = 0; i < ifaces.count(); i++)
{
QNetworkInterface iface = ifaces.at(i);
if (iface.flags().testFlag(QNetworkInterface::IsUp)
&& !iface.flags().testFlag(QNetworkInterface::IsLoopBack))
{
#ifdef DEBUG
// details of connection
qDebug() << "name:" << iface.name() << endl
<< "ip addresses:" << endl
<< "mac:" << iface.hardwareAddress() << endl;
#endif
// this loop is important
for (int j=0; j<iface.addressEntries().count(); j++)
{
#ifdef DEBUG
qDebug() << iface.addressEntries().at(j).ip().toString()
<< "/" << iface.addressEntries().at(j).netmask().toString() << endl;
#endif
// we have an interface that is up, and has an ip address
// therefore the link is present
// we will only enable this check on first positive,
// all later results are incorrect
if (result == false)
result = true;
}
}
}
return result;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream output(stdout);
output << endl << "Connection Status: " << ((isConnectedToNetwork())?"Connected":"Disconnected") << endl;
return a.exec();
}
1
"네트워크 연결"이란 "인터넷 연결"을 의미합니다. 즉, 데스크톱과 모바일 간의 LAN 또는 일부 애드혹 네트워크에는 신경 쓰지 않아도됩니다.
가장 쉬운 방법은 응용 프로그램에 필요한 인터넷 서비스에 연결하고 OS가 네트워크 요청을 처리하도록하는 것입니다. 회신을 받으면 연결이 있습니다. 요청 시간이 초과되면 연결이 없습니다.
QNetworkInterface :: flags()를 통해 네트워크 인터페이스의 상태를 확인할 수 있지만 인터페이스가 연결된 네트워크에 대한 정보는 제공하지 않습니다. 인터페이스는 작동 중일 수 있지만 인터넷이없는 LAN에만 연결됩니다 접속하다.
1
, 당신은 연결을 확인하고도, 예를 들어를 시작하기위한 QNetworkConfiguration을 사용할 수 있습니다 심비안에.
관련 문제
- 1. 네트워크 연결 확인 iPhone
- 2. 모든 Qt 신호/슬롯 연결 확인
- 3. Android를 사용하여 네트워크 공유에 연결
- 4. Python의 로컬 연결 확인
- 5. 네트워크 상태 확인
- 6. wcf 클라이언트 연결 확인
- 7. iPhone 다중 경고 네트워크 연결 확인 후 호출
- 8. System.Net.Sockets.TcpClient를 사용한 네트워크 연결
- 9. Android 서비스를 사용하여 네트워크 연결 처리
- 10. qt GUI 연결
- 11. Qt 창을 연결 하시겠습니까?
- 12. Qt 직접 연결
- 13. g ++ 4.4를 Ubuntu에 설치하는 방법?
- 14. 네트워크 연결 속도 결정
- 15. 가상 네트워크 연결
- 16. 네트워크 연결 수
- 17. 블랙 베리 네트워크 연결
- 18. 사파리로 네트워크 공유에 연결
- 19. 자바 애플릿 네트워크 연결
- 20. 위치 배경 - 네트워크 연결
- 21. 는 네트워크 연결
- 22. glib 네트워크 연결 예
- 23. C++에서 네트워크 연결
- 24. 위치 배경 - 네트워크 연결
- 25. 애플릿 간의 네트워크 연결
- 26. 들어오는 네트워크 연결 지연
- 27. j2me 네트워크 연결
- 28. iPhone의 네트워크 연결 가능성
- 29. 네트워크 연결 경고
- 30. 고속 네트워크 연결 시뮬레이션
나는 내 대답에 썼다 : QNetworkInterface는 당신에게 단지 일부 네트워크에 대한 연결이 있음을 말해 줄 것이다. 인터넷 액세스가없는 LAN, 랩톱과 모바일을 연결하는 ad-hoc wlan, 가상 컴퓨터 네트워크 등이있을 수 있습니다. OP가 찾는 정보는 아닌 것 같습니다. – chalup
옙 ... 그리고 그 정도면 .. 트릭을 ... – liaK
코드에 감사드립니다. 누군가 내 컴퓨터처럼 가상 컴퓨터를 설치하면이 코드는 실패합니다. 시간이 있으면 고칠 것입니다. –