Вы находитесь на странице: 1из 10

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

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 .. 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. CLIENTE: Tengamos siempre en cuenta el formulario

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 conectar

Private Sub Command2_Click() 'ASIGNAMOS DATOS DE CONEXION Winsock1.RemoteHost = Text4Text Winsock1.RemotePort = Text3.Text 'CONECTAMOS EL SOCKET Winsock1.Close Winsock1.Connect End Sub Primero asignamos los datos de conexion en Text4 a Winsock1.RemoteHost y Text3 a Winsock1.RemotePort, cerramos previamente el socketa para evitar errores y finalmente usamos Connect para hacer 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 & "Cliente>>" & 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 & "Servidor>>" & 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 .

SERVIDOR:
Abrimos un nuevo proyecto con Visual Basic 6.0 en el men Archivo > Nuevo Proyecto y elegimos EXE estandar :

Ahora debemos dibujar los controles necesarios: 3 cuadros de texto, 3 botones y 1 componente winsock

Ajustamos las propiedades de los componentes de modo que obtengamos un formulario similar al de la imagen

Usamos los nombres tal cual estan especificados en la imagen, para los botones cambiamos el atributo Caption y colocamos escuchar , desconectar y enviar para los botones indicados. En el caso de Text1 cambiamos el atributo Multiline = True , Scrollbars= Vertical, Text = (vacio) Guardamos el proyecto y el formulario Menu Archivo > Guardar Proyecto como > servidor.vbp Menu Archivo > Guardar servidor.frm como.. > servidor.frm

CLIENTE:
Abrimos un nuevo proyecto con Visual Basic 6.0 en el menu Archivo > Nuevo Proyecto y elegimos EXE estandar :

Dibujamos los controles necesarios: 4 cuadros de texto, 3 botones y 1 componente winsock

Ajustamos las propiedades de los componentes de modo que obtengamos un formulario similar al de la imagen Usamos los nombres tal cual estan especificados en la imagen, para los botones cambiamos el atributo Caption y colocamos escuchar , desconectar y enviar para los botones indicados. En el caso de Text1 cambiamos el atributo Multiline = True , Scrollbars= Vertical, Text = (vacio) Guardamos el proyecto y el formulario Menu Archivo > Guardar Proyecto como > cliente.vbp Menu Archivo > Guardar cliente.frm como.. > cliente.frm -----------Una vez terminado de programar el servidor y programar el cliente y gracias a la creacin de los formularios para ambos casos, ahora solo queda COMPILAR ^^, los programas y ejecutarlos Abrimos el proyecto servidor y vamos al men Archivo > Generar servidor.exe Cerramos el proyecto Abrimos el proyecto cliente y vamos al men Archivo > Generar cliente.exe Ahora debemos tener en la carpeta donde guardamos los proyectos ambos ejecutables: servidor y cliente

Ejecutamos el servidor, introducimos el numero de puerto para escuchar y presionamos escuchar:

Por otro lado Ejecutamos el programa cliente e ingresamos los datos. Como la prueba va a ser en la misma computadora podemos definir la cdireccion del servidor como: localhost, escrbimos el numero de puerto y presionamos conectar

Escribimos mensajes en ambos programas para probar su funcionalidad:

Finalmente podemos hacerlo funcionar a traves de Internet en diferentes computadoras, agregar algun icono, fondo, menu y extras como una barra de estado o mensajes automaticos, ya depende de la creatividad propia:

Con esto finalizamos el maratn para crear un chat con Visual Basic 6.0, mas adelante lo implementaremos con Java, con C o con cualquier otro lenguaje de programacin, quien sabe tal vez algn da podamos crear el nuevo Messenger ^^, Dejen sus comentarios ^^,

Вам также может понравиться