端口扫描器

端口扫描器

最近在学习网络编程,我就用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);
         }

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

附上代码:

代码链接

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值