您现在的位置:首页 >> 前端 >> 内容

网络编程学习之用Qt做一个端口扫描小程序

时间:2018/5/9 14:27:45 点击:

  核心提示:端口扫描器最近在学习网络编程,我就用Qt做了一个端口扫描小程序。先附图,再讲原理和编程方法。开始扫描前:扫描后的结果:原理:主要是用IP地址和端口号(也就是套接字)和主机连接,如果主机应答则表示该端口...

端口扫描器

最近在学习网络编程,我就用Qt做了一个端口扫描小程序。


先附图,再讲原理和编程方法。

开始扫描前:

网络编程学习之用Qt做一个端口扫描小程序

扫描后的结果:

网络编程学习之用Qt做一个端口扫描小程序

原理:

主要是用IP地址和端口号(也就是套接字)和主机连接,如果主机应答则表示该端口在工作,反之则没有。

编程方法

Qt中用到的函数:

(1)void QAbstractSocket::connectToHost(const QString &hostName, quint16 port, OpenMode openMode = ReadWrite, NetworkLayerProtocol protocol =

AnyIPProtocol)

(2)bool QAbstractSocket::waitForConnected(int msecs = 30000)

看到这两个函数,一般人头都大了,但是不用着急,听我道来。

第一个函数是用来建立连接,第一个参数是IP地址,也就是主机名,第二个参数是端口号,后面参数忽略,啦啦啦~~~

第二个函数是用来确定是否主机响应,如果响应,则返回真,后面参数单位为ms。

核心代码为:

       QTcpSocket socke;//创建一个套接字
       socket.abort();//断开连接
       socket.connectToHost(Ip,port);//连接主机
       if(socket.waitForConnected(1000))//如果主机响应,进行处理..
        {
                 //内部处理函数,我这里是简单输出到文本浏览器中
                QString msg = QString::number(i) +"connected";
                ui->portResultTextBrowser->append(msg);
         }

其他代码就是一些界面处理什么的,这里就不讲了。

作者:网络 来源:O_MMMM_O的博