Qt 查看IP是否在线的两种方法

news/2024/7/7 5:48:20 标签: QProcess, ping, QTcpSocket


1、使用QProcess和Ping


            QProcess *cmd = new QProcess;  
            #ifdef _TTY_ARMV4_  
            QString strArg = "ping -s 1 -c 1 " + b_tmpIpStr;        //linux平台下的格式  
            #else  
            QString strArg = "ping " + b_tmpIpStr + " -n 1 -w " + QString::number(m_timeoutInt) ;  //windows下的格式  
            #endif  
            cmd->start(strArg);  
            cmd->waitForReadyRead();  
            cmd->waitForFinished();  
            QString retStr = cmd->readAll();  
            if (retStr.indexOf("TTL") != -1)  
            {  
                qDebug() << m_curIpStr <<"is online!\n";  
            }  
            retStr.clear();


2、使用QTcpSocket连接


            QTcpSocket socket(0);
            socket.abort(); //取消原有连接
            socket.connectToHost(m_curIpStr,m_curPort); //建立一个TCP连接
            if(socket.waitForConnected(m_timeoutInt))
            {
                qDebug()<<m_curIpStr<<"is online\n";
            }
            socket.close();



http://www.niftyadmin.cn/n/1081665.html

相关文章

Qt中QString与int,char等互转

简述&#xff1a; QString类提供了丰富的转换函数&#xff0c;可以将一个字符串转换为数值类型或者其他的字符编码集。QString::toInt()函数将字符串转换为整型数值&#xff0c;类似的函数还有toDouble()、toFloat()、toLong()、toLongLong()&#xff1b; 1、 int, float , do…

UVa Problem 10067 Playing With Wheels (摆弄轮子)

// Playing With Wheels &#xff08;摆弄轮子&#xff09; // PC/UVa IDs: 110902/10067, Popularity: C, Success rate: average Level: 2 // Verdict: Accepted // Submission Date: 2011-09-26 // UVa Run Time: 0.380s // // 版权所有&#xff08;C&#xff09;2011&#…

多线程编程-线程的创建和终止

转载&#xff1a;http://software.intel.com/zh-cn/blogs/2011/09/22/400007583/ 1&#xff0e;引言&#xff1a; Linux系统下的多线程遵循POSIX线程接口&#xff0c;称为pthread。编写Linux下的多线程程序&#xff0c;需要使用头文件pthread.h&#xff0c;连接时需要使用库l…

Qt ip地址与子网掩码合法性校验

1、ip 地址合法性校验 static bool checkIp(QString ip){QRegExp rx2("^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$");if( !rx2.exactMatch(ip) ){return false;} else {QStringList pieces ip.split(".");int b_subIpNum[4];int b_cnt255 0;bool ok …

html tbody

HTML 5 <tbody> 标签 定义和用法 定义一段表格主体&#xff08;正文&#xff09;。 使用 <tbody> 标签&#xff0c;可以将表格分为一个单独的部分。<tbody> 标签可将表格中的一行或几行合成一组。 虽然您可能想包括一个&#xff0c;甚至会在表格中包括两个或…

QProgressBar

简述&#xff1a; Qt提供了两种显示进度条的方式&#xff1a;一种是QProgressBar&#xff0c;提供了一种横向或者纵向显示进度的控件表示方式&#xff0c;用来描述任务的完成情况&#xff1b;另一种是QProgressDialog&#xff0c;提供了一种针对慢速过程的进度对话框表示方式&a…

手把手教你:让EF动态支持新增表、动态支持多数据库

名词解释&#xff1a;此动态非运行时动态&#xff0c;让EF动态支持新增表、动态切换数据库意在不改变项目核心框架&#xff0c;通过新增或者替换组件的方式达到标题目地。 一、先来点简单的&#xff0c;动态支持多数据库 AppDbContext实现&#xff1a; public class AppDbConte…

html td

HTML <td> 标签 实例 一个简单的 HTML 表格&#xff0c;包含两行两列&#xff1a; <table border"1"><tr><th>Month</th><th>Savings</th></tr><tr><td>January</td><td>$100</td>&l…