Cita: Mensaje Original por cadrogui
... If SendData <> 1 Then
Text2.Text = Text2.Text + " <La unidad se abrio>" & vbCrLf
Else
Text2.Text = Text2.Text + " <Error en el host>" & vbCrLf
End If ...
ok, en primer lugar, con esta línea no vas a conseguir nada, ya que SendData no tiene valor.
por otro lado, todo lo que este después del Winsock.SendData se va a ejecutar seguidamente a este, por lo que no podés controlar aquí si se recibió o no. Para eso tenes que usar las propiedades WinSock_Error, para verificar si hubo algún error, WinSock_SendComplete, te comunica que el envío tuvo éxito, también tenes WinSock_SendProgress, pero en este caso no te será muy útil.
lo que yo haría sería lo siguiente:
Private Sub abrir_Click()
On Error GoTo error
ProgressBar1.Value = 0
Dim abrir_cd As String
abrir_cd = abrir.Name
Winsock1.SendData abrir_cd
Text2.Text = Text2.Text + "Abriendo la unidad de Cd..." & vbCrLf
ProgressBar1.Value = 50
Exit Sub
error:
Text2.Text = Text2.Text + "Error en la Comunicación.." & vbCrLf
Shape1.FillColor = &HFF&
End Sub
Private Sub Winsock1_Error( ...)
Text2.Text = Text2.Text + " <Error en el host>" & vbCrLf
end Sub Private Sub Winsock1_SendComplete()
Text2.Text = Text2.Text + " <La unidad se abrio>" & vbCrLf 'en realidad para saber si abrió el servidor tendría que enviarte una confirmación
ProgressBar1.Value = 100
end Sub
una recomendación que te doy es que incluyas lo siguiente al trabajar con winsock
Private Sub Winsock1_Close()
Winsock1.Close
end Sub
te puede ayudar a evitar algunos problemas en la comunicación.
espero te sea útil.
saludos.