Compilame!

[Lenguaje C][C++][JAVA][VISUAL BASIC][HTML][CSS]

Una vez que hemos leido la introduccion para la comunicacion mediante Winsock y hemos hecho los formularios, ahora solo queda programar los metodos para cada objeto creado.

Comenzaremos con el SERVIDOR:

Tengamos siempre en cuenta el formulario

 

1207715684512

Vamos a programar: Primero debemos hacer doble click en la parte del formulario al que le vamos a crear acciones o abrir su codigo e insertar lo que se detalla mas adelante.

  • Boton Command2 “escuchar”
Private Sub Command2_Click()
'CERRAMOS CUALQUIER CONEXION PREVIA
Winsock1.Close
'ASIGNAMOS EL PUERTO LOCAL QUE ABRIREMOS
Winsock1.LocalPort = Text3.Text
'DEJA EL SOCKET ESCUCHANDO
Winsock1.Listen
End Sub

Lo que acabamos de hacer es cerrar cualquier conexion previa del socket con la instruccion Close. Despues recogemos el valor del puerto con LocalPort que en este caso es asignado el valor de Text3.  Por ultimo Abrimos el puerto con Listen .

Tambien podemos definir el puerto en vez de recogerlodesde Text3 con un: Winsock1.LocalPort = 555 por ejemplo.

  • Peticion de Conexion
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'CERRAMOS PREVIAMENTE EL SOCKET
Winsock1.Close
'ACEPTAMOS CONEXION
Winsock1.Accept requestID
End Sub

Cuando el cliente quiera coectarse se generara el evento ConnectionRequest y se generara un ID (identificador), entonces esos parametros los usaremos para acpetar la conexion en WInsock1.Accept requestID . El close lo usamos para cerrar el socket, ya que estaba ocupado escuchando conexiones y lo necesitamos disponible para aceptar la conexion

  • Enviando Datos. Boton Command1 “enviar”
Private Sub Command1_Click()
'ENVIAMOS EL CONTENIDO DE TEXT2
Winsock1.SendData Text2.Text & vbCrLf
'APUNTAMOS AL FINAL DEL CONTENIDO DEL TEXTBOX E
'INSERTAMOS LOS NUEVOS DATOS OBTENIDOS
Text1.SelStart = Len(Text1.Text) 'COLOCA EL CURSOR AL FINAL DEL CONTENIDO
Text1.Text = Text1.Text & "Servidor>>" & Text2.Text & vbCrLf 'MOSTRAMOS LOS DATOS
Text1.SelStart = Len(Text1.Text) 'COLOCA EL CURSOR AL FINAL DEL CONTENIDO
'BORRAMOS TEXT2
Text2.Text = ""
End Sub

Con el metodo SendData enviamos los datos contenidos en Text2 al socket, y este a su vez lo recibira con el metodo GetData (explicado mas adelante). En nuestro Text1 mostraremos el contenido de Text2 y  Text2 lo dejaremos en Blanco “” para volver a escribir.

  • Recibiendo Datos
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim cadena As String 'VARIABLE PARA GUARDAR DATOS
Winsock1.GetData cadena
'APUNTAMOS AL FINAL DEL CONTENIDO DEL TEXTBOX E
'INSERTAMOS DATOS OBTENIDOS
Text1.SelStart = Len(Text1.Text) 'COLOCA EL CURSOR AL FINAL DEL CONTENIDO
Text1.Text = Text1.Text & "Cliente>>" & cadena 'MOSTRAMOS LOS DATOS
Text1.SelStart = Len(Text1.Text) 'COLOCA EL CURSOR AL FINAL DEL CONTENIDO
End Sub

Obtenemos los Datos con GetData  y los guardamos en la variable “cadena” del tipo String, finalmente mostramos los datos.

  • Desconexion, Boton Command3 “desconectar”

'CIERRA LA CONEXION
Winsock1.Close
'DESPLEGAMOS MENSAJE
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "DESCONECTADO" & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Este es bastante sencillo, solo usamos Close para cerrar el socket y mostramos un mensaje

  • Desconexion del Socket

Private Sub Winsock1_Close()
'CLIENTE CIERRA CONEXION
Winsock1.Close
'DESPLEGAMOS UN MENSAJE
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "CONEXION CERRADA POR EL CLIENTE" & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Este es opcional, ocurre cuando el socket se cierra por el cliente.

 

Finalmente deberiamos tener todo el codigo y para probar nuestro programa podemos hacer click en el boton Iniciar(boton Play) o desde el menu: Ejecutar > Inciar o Presionar F5

1 comentarios ^^,:

Hola amigo probando tu tutorial con VB6, que debo modificar para que se conecten varios usuarios??

Publicar un comentario