程序中调用winsock和richtextbox控件,我如何判断在richtextbox输出内容后10秒中无任何操作将winsock结束呢???请详细说明一下,谢谢!!!!

解决方案 »

  1.   

    我写了个例子,你认真分析一下思路Dim STime As LongPrivate Sub Form_Load()
        Timer1.Interval = 1000
        Timer1.Enabled = False
    End SubPrivate Sub Timer1_Timer()
        STime = STime + 1
        Label1.Caption = "等待:" & STime & " 秒  网络状态:" & Winsock1.State
        If STime >= 10 Then
            STime = 0
            Timer1.Enabled = False
            If Winsock1.State <> 0 Then Winsock1.Close
            Label1.Caption = "等待:" & STime & " 秒  网络状态:" & Winsock1.State
        End If
    End SubPrivate Sub Winsock1_Close()
        If Timer1.Enabled Then Timer1.Enabled = False
        If Winsock1.State <> 0 Then Winsock1.Close
        Label1.Caption = "等待:" & STime & " 秒  网络状态:" & Winsock1.State
    End SubPrivate Sub Command1_Click()
        Winsock1.Connect "www.baidu.com", 80
    End SubPrivate Sub Winsock1_Connect()
        Dim SendStr As String
        Text1.Text = ""
        SendStr = "GET / HTTP/1.1" & vbCrLf
        SendStr = SendStr & "Accept: */*" & vbCrLf
        SendStr = SendStr & "Accept -Language: zh -cn" & vbCrLf
        SendStr = SendStr & "UA -CPU: x86" & vbCrLf
        SendStr = SendStr & "Accept -Encoding: gzip , deflate" & vbCrLf
        SendStr = SendStr & "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" & vbCrLf
        SendStr = SendStr & "Host: www.baidu.com" & vbCrLf
        SendStr = SendStr & "Connection: Keep -Alive" & vbCrLf & vbCrLf
        Winsock1.SendData SendStr
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        STime = 0
        If Timer1.Enabled <> True Then Timer1.Enabled = True
        '下面是你处理数据的过程
        Dim NetStr As String
        Winsock1.GetData NetStr, vbString, bytesTotal
        Text1.Text = Text1.Text & NetStr
        
        
        STime = 0
    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)
        STime = 0
        CancelDisplay = True
        Winsock1_Close
    End SubPrivate Sub Winsock1_SendComplete()
        STime = 0
        If Timer1.Enabled <> True Then Timer1.Enabled = True
    End Sub
      

  2.   

    太复杂了  你简单点吗????我只是将winsock连接的内容输出到richtextbox,然后判断没有输出后10s后中断
      

  3.   

    我只是把你的需求改了一下,内容输出的是TextBox里
    连接读取的内容是百度的首页内容而已。
      

  4.   


    呵呵 可以了 如果我要等待10S后想执行一个command_click呢?需要修改什么呢?谢谢指点!!!不胜感激