大家好,请教大家一个问题,我这程序放在定时器里面(100ms或1000ms响应一次),经常发不出去,调试状态下查看winsock1.state的值经常是6(连接中),如果程序放在Botton事件中就可以,查不出原因,所以请教大家With Winsock1
        If .State <> sckClosed Then
           .Close
        End If
         .RemoteHost = "192.168.0.1"
         .RemotePort = "33822"
         .Connect
         DoEvents
        If .State <> sckConnected Then
          Exit Sub   
        End If
End With
DoEvents
'发送数据
If Winsock1.State = sckConnected Then
  Winsock1.SendData str
End If

解决方案 »

  1.   

    把“握手”放在主程序了。With Winsock1
            If .State <> sckClosed Then
               .Close
            End If
             .RemoteHost = "192.168.0.1"
             .RemotePort = "33822"
             .Connect
             DoEvents
            If .State <> sckConnected Then
              Exit Sub   
            End If
    End With
    DoEvents可以在定时器里定时发送数据。增加“心跳”检测。
      

  2.   

    非常的sorry,我是个菜鸟,求解释~~~~
      

  3.   

    你的定时器不用每一次发都去握手吧。
    握手一次就可以了啊。定时器只做DOEVENTS的事就可以了。