下面是探测端口是否开放的代码但这个代码探测的速度太慢,如果要快速扫描端口,应该是增加线程,请问如何多线程扫描端口????谢谢!!!text1,ip地址
text2,起始端口
text3,终止端口
text4,信息
command1,扫描
command2,停止
添加winsock控件,
代码
Option Explicit
Dim PortNo As LongPrivate Sub Command1_Click()
PortNo = CLng(Text2.Text)
Text4.Text = ""
Command2.Enabled = True
Command1.Enabled = False
Winsock1.Connect Text1.Text, PortNo
Me.Caption = "连接端口扫描编号:" & PortNo
End SubPrivate Sub Command2_Click()
Command1.Enabled = True
Command2.Enabled = False
Winsock1.Close
PortNo = CLng(Text2.Text)
End SubPrivate Sub Form_Load()
Text1.Text = "127.0.0.1"
Text2.Text = "1"
Text3.Text = "32767"
Label1.Caption = "IP 地址"
Label2.Caption = "起始连接端口"
Label3.Caption = "终止连接端口"
Command1.Caption = "开始扫描"
Command2.Caption = "停止"End Sub
Private Sub Winsock1_Connect()
Text4.Text = Text4.Text & "连接端口编号:" & Str(Winsock1.RemotePort) & vbCrLf
Winsock1.Close
PortNo = PortNo + 1
If PortNo <= CLng(Text3.Text) Then
Me.Caption = "连接端口扫描编号:" & PortNo
Winsock1.Connect Text1.Text, PortNo
Else
Command2_Click
End If
End SubPrivate Sub Winsock1_Error(ByVal Number As Integer, Description As String, _
ByVal Scode As Long, ByVal Source As String, _
ByVal HelpFile As String, ByVal HelpContext As Long, _
CancelDisplay As Boolean) Winsock1.Close
PortNo = PortNo + 1
If PortNo <= CLng(Text3.Text) Then
Me.Caption = "连接端口扫描" & PortNo
Winsock1.Connect Text1.Text, PortNo
Else
Command2_Click
End If
End Sub
text2,起始端口
text3,终止端口
text4,信息
command1,扫描
command2,停止
添加winsock控件,
代码
Option Explicit
Dim PortNo As LongPrivate Sub Command1_Click()
PortNo = CLng(Text2.Text)
Text4.Text = ""
Command2.Enabled = True
Command1.Enabled = False
Winsock1.Connect Text1.Text, PortNo
Me.Caption = "连接端口扫描编号:" & PortNo
End SubPrivate Sub Command2_Click()
Command1.Enabled = True
Command2.Enabled = False
Winsock1.Close
PortNo = CLng(Text2.Text)
End SubPrivate Sub Form_Load()
Text1.Text = "127.0.0.1"
Text2.Text = "1"
Text3.Text = "32767"
Label1.Caption = "IP 地址"
Label2.Caption = "起始连接端口"
Label3.Caption = "终止连接端口"
Command1.Caption = "开始扫描"
Command2.Caption = "停止"End Sub
Private Sub Winsock1_Connect()
Text4.Text = Text4.Text & "连接端口编号:" & Str(Winsock1.RemotePort) & vbCrLf
Winsock1.Close
PortNo = PortNo + 1
If PortNo <= CLng(Text3.Text) Then
Me.Caption = "连接端口扫描编号:" & PortNo
Winsock1.Connect Text1.Text, PortNo
Else
Command2_Click
End If
End SubPrivate Sub Winsock1_Error(ByVal Number As Integer, Description As String, _
ByVal Scode As Long, ByVal Source As String, _
ByVal HelpFile As String, ByVal HelpContext As Long, _
CancelDisplay As Boolean) Winsock1.Close
PortNo = PortNo + 1
If PortNo <= CLng(Text3.Text) Then
Me.Caption = "连接端口扫描" & PortNo
Winsock1.Connect Text1.Text, PortNo
Else
Command2_Click
End If
End Sub
解决方案 »
- 请教大家一个非常简单的vbs脚本的问题.谢谢.
- vb自己的报表安装问题,送50
- 问个简单的问题:请问怎么样以二进制方式读写文件,比方说我要先把字符串"test"写到"D:\test.dat"中(要求用记事本打开后看到的是乱码),然后
- “五.一”来临之际,东方之珠酒楼请CSDN总裁及以下人员和所有发烧友吃顿饭,凡进来者不拒,吃了饭再走!
- 如何在vb中读取XML的数据?高手指点!!!!
- 一个错误处理问题,困扰我很久!请高手帮忙!
- 高手推荐
- 跟一家20多个人的美容美体店做一个顾客管理程序,提供所有顾客的消费情况记录和指定顾客的消费记录查询和月收入统计等功能,开价多少?
- 哪位高手知道,vb中不用ocx 和 dll 读取硬盘物理序列号(不是用getvolumeinfomation)!谢谢!
- 到底应该学VB还是Delphi?
- 在线等!!!在VB中如何用写文件的方法生成一个BMP位图文件
- 请问如何定义控件的二维数组?比如Shape(6)(5)
``你给10分谁来!
哈哈