Private Sub cmdSign_Click() Winsock1.RemoteHost = "192.168.0.5" Winsock1.RemotePort = "80" Winsock1.Connect End Sub和第一次是一样的,而且上次的代码执行结束后,有close,跟踪的状态显示也是close,但一赋值就报错40020
Private Sub cmdSign_Click() if winsock1.state<>0 then winsock1.closet endif Winsock1.RemoteHost = "192.168.0.5" Winsock1.RemotePort = "80" Winsock1.Connect End Sub 这样看看,有可能关闭不干净
DO UNTIL WINSOCK1.STATE=7 if winsock1.state=7 then WINSOCK1.SENDDATE end if doevents LOOP 6-7之间用1个死循环
Private Sub cmdSign_Click() Winsock1.Close 'If Winsock1.State = 0 Then Winsock1.RemoteHost = "192.168.0.5" Winsock1.RemotePort = "80" Winsock1.Connect End SubPrivate Sub Winsock1_Connect() Dim strCommand As String Dim strWebPage As String strWebPage = "http://192.168.0.5/wn/sign.jpg" strCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLf strCommand = strCommand + " Accept: */*" + vbCrLf strCommand = strCommand + " Accept: text/html" + vbCrLf strCommand = strCommand + vbCrLf Do Until Winsock1.State = 7 '这是你刚才所说的代码,在这里不会执行,因为State到这里就是7 If Winsock1.State = 7 Then Winsock1.SendData strCommand End If DoEvents Loop End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim bytData() As Byte
If Winsock1.State = 7 Then Winsock1.GetData bytData, vbByte, bytesTotal Else '如果winsock连接不成功,重连 Call cmdSign_Click Call Winsock1_Connect Winsock1.GetData bytData, vbByte, bytesTotal End If End Sub
发现问题在哪儿了,改了一下 Do If Winsock1.State = 7 Then Winsock1.SendData strCommand End If DoEvents Loop Until Winsock1.State = 7
Winsock1.RemotePort = "80"
Winsock1.Connect不太明白为什么连不上
需要時間的,不能馬上就執行,也不能馬上就顯示它的狀態
这样肯定出错
要不在把senddate放在winsock1_connect事件里面,要不就放在另外一个按钮事件里面
Winsock1.RemoteHost = "192.168.0.5"
Winsock1.RemotePort = "80"
Winsock1.Connect
End Sub和第一次是一样的,而且上次的代码执行结束后,有close,跟踪的状态显示也是close,但一赋值就报错40020
if winsock1.state<>0 then
winsock1.closet
endif
Winsock1.RemoteHost = "192.168.0.5"
Winsock1.RemotePort = "80"
Winsock1.Connect
End Sub
这样看看,有可能关闭不干净
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = "80"
Winsock1.Connect
DO UNTIL WINSOCK1.STATE=7
WINSOCK1.SENDDATE
LOOP
在用一个TIMMER控件检测到一定时间就显示连接超时
if winsock1.state=7 then
WINSOCK1.SENDDATE
end if
doevents
LOOP
6-7之间用1个死循环
Winsock1.Close
'If Winsock1.State = 0 Then
Winsock1.RemoteHost = "192.168.0.5"
Winsock1.RemotePort = "80"
Winsock1.Connect
End SubPrivate Sub Winsock1_Connect()
Dim strCommand As String
Dim strWebPage As String
strWebPage = "http://192.168.0.5/wn/sign.jpg"
strCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLf
strCommand = strCommand + " Accept: */*" + vbCrLf
strCommand = strCommand + " Accept: text/html" + vbCrLf
strCommand = strCommand + vbCrLf
Do Until Winsock1.State = 7 '这是你刚才所说的代码,在这里不会执行,因为State到这里就是7
If Winsock1.State = 7 Then
Winsock1.SendData strCommand
End If
DoEvents
Loop
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim bytData() As Byte
If Winsock1.State = 7 Then
Winsock1.GetData bytData, vbByte, bytesTotal
Else '如果winsock连接不成功,重连
Call cmdSign_Click
Call Winsock1_Connect
Winsock1.GetData bytData, vbByte, bytesTotal
End If
End Sub
Do
If Winsock1.State = 7 Then
Winsock1.SendData strCommand
End If
DoEvents
Loop Until Winsock1.State = 7