Tengo un cliente y un servidor, que se comunican con winsock.
El servidor funciona de maravilla. Responde a todo y controla toda. Cero problema.
El tema que me complica es lo siguiente:
El cliente, tiene 3 (tres) botones
- cmdConect
- cmdSend
- cmdClose
Si se presionan en forma consecutiva, y en la secuencia anteriormente descrita, todo funciona bien. Se comunica sin problemas con el servidor, y obtengo respuesta.
Pero, si en un solo boton, activo el evento click de cada uno de estos 3 (tres) botones, NO logro la comunicacion con el servidor.
Adjunto el codigo del cliente, para que lo prueben...
Option Explicit
Public Sub cmdClose_Click()
cmdConnect.Enabled = True
cmdSend.Enabled = False
cmdClose.Enabled = False
End Sub
Public Sub cmdConnect_Click()
Winsock1.RemoteHost = "10.0.3.150"
Winsock1.RemotePort = 1007
Winsock1.Connect
txtRespuesta.Text = ""
cmdConnect.Enabled = False
cmdSend.Enabled = True
cmdClose.Enabled = True
txtMensajeEnviar.SetFocus
End Sub
Public Sub cmdSend_Click()
If Winsock1.State = sckConnected Then
Winsock1.SendData txtMensajeEnviar.Text
Label3.Caption = "Sending Data"
Else
Label3.Caption = "No se puede conectar a host"
End If
End Sub
Private Sub cmdStatus_Click()
Label3.Caption = "Estado:" & Winsock1.State
End Sub
Private Sub cmdTodosJuntos_Click()
Call cmdConnect_Click
Call cmdSend_Click
Call cmdClose_Click
End Sub
Private Sub Form_Load()
txtMensajeEnviar.Text = "asdfasdfasdf"
txtRespuesta.Text = ""
Label3.Caption = ""
txtIP.Text = Winsock1.LocalIP
End Sub
Private Sub Winsock1_Connect()
Select Case Winsock1.State
Case 0: Label3.Caption = "Cerrada"
Case 1: Label3.Caption = "Abierta"
Case 2: Label3.Caption = "Escuchando"
Case 3: Label3.Caption = "Solicitud pendiente"
Case 4: Label3.Caption = "Resolviendo Conexion"
Case 5: Label3.Caption = "Resuelta Conexion"
Case 5: Label3.Caption = "Resuelta Conexion"
Case 6: Label3.Caption = "Conectandose"
Case 7: Label3.Caption = "Conectado"
Case 8: Label3.Caption = "Cerrando"
Case 9: Label3.Caption = "Error"
End Select
Label3.Caption = Winsock1.State & ":" & Label3.Caption
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Winsock1.GetData sData, vbString
txtRespuesta.Text = sData
Label3.Caption = "Received Data"
End Sub
Private Sub Winsock1_SendComplete()
Label3.Caption = "Completed Data Transmission"
End Sub
Si se dan cuenta, al presionar el boton cmdTodosJuntos, NO se activa el evento CONNECT del winsock.
Alguien sabe como resolver este tema?