我这VB程序错在哪里

来源:百度知道 编辑:UC知道 时间:2024/06/09 10:03:04
是一个扫描端口的软件,扫描一个IP段打开了指定端口的电脑,有timer,winsock控件各一个,有text控件10个,其中text1--text4用来输入起始IP(因为IP由4段数字组成,我就分四个输入框输),text5---text8用来输入结束IP,有command控件两个,command1是开始扫描,command2是停止扫描,text9用来输入要扫描的端口号,text10用来显示结果,即有指定端口的电脑,代码如下:
Option Explicit
Dim i1 As String, i2 As String, i3 As String, i4 As String

Private Sub Command1_Click()
Timer1.Interval = 1
End Sub

Private Sub Command2_Click()
Timer1.Interval = 0

End Sub

Private Sub Form_Load()
i1 = Text1.Text
i2 = Text2.Text
i3 = Text3.Text
i4 = Text4.Text

End Sub

Private Sub Timer1_Timer()

Winsock1.Close
Winsock1.RemoteHost = i1 & "." & i2 & "." & i3 & "." & i4 '要扫描的IP
Winsock1.RemotePort = Text9.Text '要扫描的端口
Winsock1.Connect '开始连接
form1.Caption = "正在扫描IP:" & i1 & "." & i2 & "." & i3 & "." & i4
i4 = i4 + 1
If i1 = Text5.Text

答案补充:i=val(text1.text),以下也是如此。
=====================
这是你的定义:Dim i1 As String, i2 As String, i3 As String, i4 As String
所以他们是字符串。
但是下面你对它们做了不少运算:
If i4 = 255 Then
i3 = i3 + 1
i4 = 1
End If
If i3 = 256 Then
i2 = i2 + 1
i3 = 0
End If
If i2 = 256 Then
i1 = i1 + 1
i2 = 0
字符串是不能这么算得。
你最好DIm的时候,就弄成Long之类的。

i1 = Text1.Text 应该加上val的
i2 = Text2.Text 应该加上val的

i3 = Text3.Text 应该加上val的

i4 = Text4.Text 应该加上val的

提示错误后停在哪一句上啊