首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

winsock咨询解决办法

2013-06-19 
winsock咨询大家好,请教大家一个问题,我这程序放在定时器里面(100ms或1000ms响应一次),经常发不出去,调试

winsock咨询
大家好,请教大家一个问题,我这程序放在定时器里面(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
[解决办法]
把“握手”放在主程序了。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

可以在定时器里定时发送数据。

增加“心跳”检测。
[解决办法]
你的定时器不用每一次发都去握手吧。
握手一次就可以了啊。定时器只做DOEVENTS的事就可以了。

热点排行