Beruflich Dokumente
Kultur Dokumente
Este curso se actualiza cada mes, así que si deseas conseguir la última versión
Del curso, comunícate conmigo o puedes adquirirlo desde nuestra página de
Internet en la opción compra, puedes solicitarlo.
El control winsock es el control que visual basic nos proporciona para poder realizar
nuestras propias aplicaciones cliente - servidor. Con este control podremos realizar
programas que se puedan comunicar con otros programas nuestros, en la misma
computadora, o incluso en otra computadora (esta es la opción que a la mayoría nos
interesa).
Los programas que se pueden realizar con este control son variados, como puede ser un
servidor web, un sistema de control de acceso, sistema para cybers, sistema para control de
personal, troyanos, sistemas de asistencia remota. En fin programas para buenos propósitos
y programas para no muy buenas personas :D . Nosotros nos basaremos en programas para
buenos propósitos. Lo más interesante del control winsock, es que además de servir para
comunicar nuestras aplicaciones en la misma máquina o en una red local, también nos sirve
para comunicar nuestras aplicaciones a través de internet. Con esto te quiero decir que
podrás hacer tu propio chat y podrás divertirte usándolo con tus amigos a través de internet,
o hacer diversas aplicaciones para trabajar a través de internet.
Cabe destacar que TODAS las aplicaciones que se muestran y que se codifican en este
curso funcionan en RED DE AREA LOCAL e igualmente por INTERNET (Un poco más
lentas pero funcionan perfectamente).
Comenzamos con el curso. Y les pido de favor que no cambien ningún crédito en él puesto.
Primeramente, claro después de haber instalado visual basic. Debemos buscar el control
Microsoft winsock control en el menú “proyecto->componentes”, activar su casilla y pulsar
el botón “Aceptar”.
El control tiene una apariencia como la siguiente figura, y al agregarlo aparecerá en la barra
de controles.
Y ahora a correr nuestra aplicación y pulsar en los dos botones, y la ejecución debe ser algo
como esto:
Claro la ip que están viendo es la que tenía yo cuando ejecuté el programa, y el nombre que
ven es el nombre de mi computadora, el código está muy chico y explicadas sus lineas.
Configurando el sistema servidor
Este sistema servidor será el servidor para un chat entre cliente y servidor (Programa 02)
El winsock original debe establecerse su propiedad index = 0 para que este winsock sea el
inicial de un vector de winsocks. Cada winsock nuevo que éste cree se irá almacenando en
el vector.
Winsock original Winsock creado por Winsock creado por Espacio libre
(esperando conexiones) el original el original para winsock
(atendiendo cliente 1) (atendiendo cliente 2)
LocalPort
Propiedad que debe establecerse en el servidor para que acepte conexiones de los clientes.
Es de lectura y escritura, además está en disponible en tiempo de diseño y ejecución.
Ejemplo: Winsock1.LocalPort
ConnectionRequest
Evento que se activa cuando el servidor detecta que hay un cliente queriendo conectarse a
él. Al aceptar la conexión con el método Accept, las propiedades RemoteHostIP guarda la
IP del cliente y RemotePort guarda el puerto utilizado por el cliente.
Accept
Recibe el mensaje que activó a DataArrival, y lo guarda en una variable y borra lo que se
recibió, ya que se queda almacenado en el buffer del sistema(memoria temporal)
Ejemplo: dim datos as string
Winsock1.GetData datos
SendData
Para mandar mensajes al cliente, que puede ser texto o código binario, en caso de mandar
archivos.
Ejemplo: winsock1.SendData “Mensaje”
State
Propiedad del winsock que nos permite saber el estado de la conexión, valores que puede
devolver:
0 sckClosed Cerrado
1 sckOpen Abierto
2 sckListening Escuchando
3 sckConnectionPending Conexión pendiente
4 sckResolvingHost Resolviendo Host
5 sckHostResolved Host resuelto
6 sckConnecting Conectando
7 sckConnected Conectado
8 sckClosing Cerrando la conexión
9 sckError Ha detectado un error
Creamos lo siguiente:
- 5 etiquetas (label1, label2, label3, label4 y label5), label1 en caption “Esta es mi ip”,
label2 en caption “Nombre de mi computadora”, label3 en caption “Mensaje
recibido”, label4 en caption “Escribir mensaje”, label5 en caption “Estado de la
conexión”.
- 5 cuadros de texto
Ahora a programar:
Este sistema cliente será el cliente para un chat entre cliente y servidor (Programa 03)
Propiedad del winsock que permite cerrar el control winsock para establecer una nueva
conexión, esto siempre se debe de hacer antes de invocar la propiedad connect.
Ejemplo: winsock1.close
Connect
Propiedad del winsock que permite establecer una conexión con otro programa, en la
misma computadora, en la red, o en internet.
Ejemplo: winsock1.connect “148.208.196.5”, 10112
Creamos lo siguiente:
- 4 cuadros de texto
- 1 timer (timer1)
- 1 winsock (winsock1)
Se debe ver algo como esto:
Ya con esto podemos intentar hacer una conexión entre cliente y servidor, por medio de la
ip. Si queremos conectarnos al programa servidor que está en nuestra PC, basta con escribir
la ip “127.0.0.1” y conectar y se hace la conexión.
Otras propiedades
BytesReceived
Propiedad de solo lectura que almacena la cantidad de datos recibidos. Está disponible sólo
en tiempo de ejecución.
Ejemplo: winsock1.BytesReceived
PeekData
Este método es similar a GetData, lo único que varía, es que el GetData elimina los datos
recibidos del buffer, y el PeekData no los elimina.
SendProgress
Este método se produce mientras se están enviando datos. Pasa como parámetros los bytes
enviados desde la última vez que se activó el evento (bytesEnv) y los bytes que esperan a
ser enviados en el buffer de transmisión (bytesRest)
SendComplete
Ejemplo: winsock1_SendComplete()
Error
Se produce siempre que ocurre un error en los procesos de segundo plano (por ejemplo, un
fallo al conectar o un fallo al enviar o recibir en segundo plano). Pasa como parámetros el
código de error, la descripción del error, el scode del error, el origen del error, y un
booleano para cancelar o aceptar el que presente un cuadro de dialogo con el aviso de error.
Para tener un programa muy bien desarrollado y que no cause errores cuando las terminales
destino se caigan, debe hacerse una buena validación en el envío de mensajes a terminales,
esto es, si no se encuentra activa la terminal, no enviarle ningún tipo de mensajes hasta que
esta esté activa. Esto se consigue con la propiedad “state”, tomamos algunos valores de
esta propiedad para validar que la máquina esté activa.
Los valores que nos interesan de esta propiedad son los siguientes
0 sckClosed Cerrado
7 sckConnected Conectado
Este envío de mensaje funciona muy bien cuando la terminal destino está conectada, pero si
se desconecta la terminal y mandamos un mensaje a ella, nuestra aplicación se traba.
Entonces debemos utilizar la siguiente estructura para que nuestra aplicación no sufra
ningún error de este tipo
If winsock1.state=7 then
Winsock1.senddata “Hola como estás”
endif
Ahora procedemos a validar la conexión, esto causa error si tenemos un botón de conectar y
pulsamos conectar y la aplicación se conecta con el servidor, muy bien hasta ahora, pero
que pasa si de casualidad se nos ocurre nuevamente pulsar el botón conectar?, nuestra
aplicación sufre un error. Ahora a corregirlo.
If winsock1.state<>7 then
Winsock1.close
Winsock1.connect “192.168.1.6”, 10112
endif
Como crear aplicaciones que aceptan varias conexiones?
En lugar de hacer que nuestro winsock del servidor reciba una conexión y se cierre:
Lo que debemos hacer es que nuestro winsock reciba la petición y cree otro winsock que
aloje esa conexión, y él siga esperando más conexiones, esto lo conseguimos de la siguiente
forma:
Antes que nada declaramos una variable que va a llevar el conteo de las conexiones
establecidas
Viendo este código, se podrán hacer muchas otras aplicaciones similares, éste minichat se
puede decir que es la base para poder crear sistemas de administración, ya sea de cybers,
control de acceso, en el que se involucran varias computadoras clientes.
El minichat en lugar de usar el puerto 10112 como el anterior, usará el puerto 80 para
asegurar de que también podrá usarse a través de internet.
En algunas ocasiones esta es la parte más interesante de los programas cliente – servidor, la
capacidad de poder obtener los datos de una base de datos que no está alojada localmente.
Esta parte de las aplicaciones cliente – servidor es la más deseada por quienes desean
desarrollar aplicaciones de este tipo. Ahora les explicaré la forma de obtener datos,
modificarlos, eliminarlos, guardarlos y visualizarlos. Querian más?
Primeramente para guardar datos, el cliente debe enviar un mensaje diciendo al servidor
que desea guardar datos, entonces el servidor identifica el mensaje y procede a guardar
todos los datos que el cliente le envió junto con dicho mensaje.
enviar_linea = "/guarda_info_docente:" & Text1.Text & "," & Text2.Text & ";”
If Winsock1.State = 7 Then
Winsock1.SendData enviar_linea
endif
Hago notar que cada campo lo separo por una “coma ( , )” y al último pongo un “punto y
coma ( ; )”, esto es para que el servidor identifique en que campo guardar cada dato y
cuando el servidor encuentra un “punto y coma” significa que ya no hay nada más que
buscar en el mensaje. El servidor busca en el mensaje letra por letra es por esto que se le
debe indicar hasta cuando deje de buscar.
c=c+1
palabra = ""
docentes.Recordset.nombre = palabra
docentes.UpdateRecord
docentes.Refresh
endif
Este código es donde el servidor decodifica el mensaje, y guarda los datos, y es lo mismo
para modificar información, sólo que en lugar de “addnew”, se coloca “edit”
Para pedir datos al servidor para visualizarlos, el cliente le hace una petición al servidor:
If winsock1.state = 7 then
Winsock1.SendData "/verifica_docente:" & Text1.Text
Endif
Entonces el servidor debe hacer una búsqueda en su base de datos y al encontrar al docente
mandarle los datos al servidor:
Puedes ver el código fuente que te incluyo para que te sea más fácil comprender en el
“PROGRAMA 05”
Como puedo bloquear y desbloquear una PC cliente desde el servidor?
Para poder hacer esto, es necesario ejecutar una rutina que cada segundo esté actualizando
la pantalla cliente para indicarle que siempre se mantenga al frente sobre cualquier
aplicación para que la aplicación cliente esté bloqueando el uso de cualquier programa en la
pc en que se encuentra.
Para bloquear o desbloquear el cliente desde el servidor, basta con mandar orden de
bloqueo o desbloqueo al cliente, quien reconoce dichas órdenes y procede a ejecutarlas.
Puedes ver el código fuente que te incluyo para que te sea más fácil comprender en el
“PROGRAMA 06”
Como puedo realizar una conexión ODBC con una base de datos en un servidor?
Las conexiones ODBC son realizadas por el sistema operativo, y se encargan de realizar
una conexión entre nuestra máquina y una base de datos que se encuentra en otra
computadora. Esta conexión nos facilita que si hacemos una aplicación que funcione en
nuestra propia computadora, también podrá funcionar en red, sin programar nada más, sino
solo cambiar la dirección donde se encuentra la base de datos.
Ahora veremos la forma de configurar una base de datos con la configuración ODBC y
veremos código de ejemplo de cómo utilizar esta conexión.
CONFIGURANDO LA CONEXIÓN
En la pantalla nos muestra ya la base de datos como: “C:\BD_SAD.mdb”, quiere decir que
hemos configurado correctamente, pulsamos el botón “Aceptar” y desde ahora podremos
hacer uso del sistema.
Abre visual basic y un nuevo formulario. Entonces verifica en menú Proyecto ->
Referencias que esté de la siguiente manera la ventanita que aparezca, de no ser así, activa
los ITEMS.
“PROGRAMA 07”
'Realizamos la consulta con la base de datos donde le indicamos con FROM que
'Busque en la base de datos la tabla carrera y que ahi en esa tabla busque
'el campo clave_carrera.
With qy
.Name = "BD"
.SQL = "Select * from carrera Where clave_carrera = ? "
.RowsetSize = 1
Set .ActiveConnection = cn
End With
'Indicamos que extraiga todos los registros donde el campo clave_carrera sea
'igual a el valor que indicamos en el combo.
SQL = "Select * from carrera Where clave_carrera='" & Combo.Text & "'"
'Si se llegó al final quiere decir que no hay registros encontrados, entonces
'procede a registrarse
If rdoRS.EOF = True Then
MsgBox ("no hay repetidos")
'Indicamos la sentencia de introducción de datos a la tabla
SQL = "INSERT INTO carrera " & "(clave_carrera,nombre_carrera)" & "VALUES ('" &
Combo.Text & "', " & "'" & TextDescripcion.Text & "') "
'Ejecutamos la sentencia
With qy
.SQL = SQL
.LockType = rdConcurLock
Set .ActiveConnection = cn
End With
'Realizamos la consulta con la base de datos donde le indicamos con FROM que
'Busque en la base de datos la tabla carrera y que ahi en esa tabla busque
'el campo clave_carrera.
With qy
.Name = "BD"
.SQL = "Select * from carrera Where clave_carrera = ? "
.RowsetSize = 1
Set .ActiveConnection = cn
End With
'Indicamos la sentencia de eliminación de datos a la tabla.
SQL = "Delete * From carrera Where clave_carrera='" & Combo.Text & "' "
'Ejecutamos la baja
cn.Execute SQL
cn.Close
en.Close
TextDescripcion.Text = ""
Combo.Text = ""
MsgBox ("Registro Eliminado")
fun = comboini()
End Sub
'Realizamos la consulta con la base de datos donde le indicamos con FROM que
'Busque en la base de datos la tabla carrera y que ahi en esa tabla busque
'el campo clave_carrera.
With qy
.Name = "BD"
.SQL = "Select * from carrera Where clave_carrera = ? "
.RowsetSize = 1
Set .ActiveConnection = cn
End With
cn.Close
en.Close
TextDescripcion.Text = ""
Combo.Text = ""
fun = comboini()
End Sub
'Realizamos la consulta con la base de datos donde le indicamos con FROM que
'Busque en la base de datos la tabla carrera y que ahi en esa tabla busque
'el campo clave_carrera.
With qy
.Name = "BD"
.SQL = "Select * from carrera Where clave_carrera = ? "
.RowsetSize = 1
Set .ActiveConnection = cn
End With
'Indicamos que extraiga todos los registros donde el campo clave_carrera sea
'igual a el valor que indicamos en el combo.
SQL = "Select * from carrera Where clave_carrera ='" & Combo.Text & "'"
LabelUnidad.Caption = Combo.Text
cn.Close
en.Close
End Sub
Function comboini()
'Declaramos las variables que se ocuparán
Dim cn As rdoConnection
Dim en As rdoEnvironment
Dim rdoRS As rdoResultset
Dim SQL As String
Dim qy As New rdoQuery
en.Close
cn.Close
End Function
Con este programa nos podemos dar cuenta de que manera hacer una conexión ODBC con
una base de datos que se encuentra en otra computadora, ya sea en red o por internet.
Como puedo imprimir datos en una impresora local o en red?
Esto de imprimir es tan sencillo como se escucha, lo primero y más básico es tener ya
instalada una impresora local o en red. En sí si la impresora es local o en red, no afecta en
nada a nuestras aplicaciones. Lo importante para nosotros es crear una aplicación donde se
obtengan los datos de la base de datos del servidor. Después realizar las siguientes pautas.
Paso 1. Crear un formulario con dos etiquetas y dos cuadros de texto y un botón de
comando llamado “Imprimir”
Paso 3. Crear dos etiquetas y dos cuadros de texto, un botón llamado “Seleccionar
Impresora”, y un botón llamado “Proceder a impresión” y un CommonDialog llamado
“cd”, Y además cambiar el color de fondo(Backcolor) del formulario a color blanco así
mismo también las dos etiquetas color de fondo a blanco, como se muestra en la siguiente
figura.
Paso 4. Hacer que el form1 llame al form2 al hacer clic en el botón “Imprimir”.
Paso 6. Programar el botón “Seleccionar impresora” para que nos cargue las impresoras
configuradas en el sistema.
Paso 7. Programar el botón de “Proceder a imprimir…” con una simple línea que imprimirá
todo el formulario.
Programando aplicación para imprimir datos en impresora local o en red
“PROGRAMA 08”
Si deseas que no aparezcan los botones al imprimir tendrás que hacer que desaparezcan por
cerca de 2 segundos con un control Timer.
Cómo puedo conectarme a una base de datos en Internet desde visual basic?
Para muchos el conectarse a una base de datos que se encuentra en Internet, desde un
programa realizado por ellos mismos, les resulta casi imposible. De hecho la mayoría de los
programadores crecen pensando en que esto no se puede hacer, ya que en las escuelas
jamás nos enseñaron eso, nunca nos dijeron las maravillas que se pueden hacer con los
lenguajes de programación, y digo maravillas porque a mí me resultó casi imposible
también, pero con un buen de investigación y horas y horas de estar frente a la
computadora, me resultó posible y de gran alegría para mi vida, por que ya tenía más de un
año queriendo hacerlo. Gracias a la ayuda de varios foros de programación pude lograrlo,
aunque solamente me dieron las pautas a seguir, yo logré hacerlo y les comparto mi
experiencia. Verán que jamás se arrepentirán de obtener este conocimiento.
Ya te has de estar imaginando, este programa debe ser demasiado pesado ya que para
conectarse a bases de datos en Internet se necesitan cientos de líneas de código, lo digo
porque una vez descargué un código que hacía una conexión a una base de datos en Internet
usando XML y me sorprendí ya que tenía como 1000 líneas de código. Pero algo increíble
es que puedes hacer altas, bajas, modificaciones y consultas sólo con 121 líneas de código.
Está bien ya no ahondo más en lo que me pasó y mejor comienzo a explicarles como se
hace, y en el siguiente tema lo veremos gráficamente.
Para hacer una conexión a una base de datos en Internet, en la cual es una base de datos
MYSQL la que utilizaremos, ya que es una base de datos gratuita. Debemos instalar el
software de ODBC para bases de datos MYSQL llamado “mysql-connector-odbc-3.51.12-
win32.msi” (que incluyo junto con el código fuente de este ejemplo).
Ya instalado dicho software debemos contratar una base de datos gratuita en un servidor de
base de datos MYSQL, porque no estamos dispuestos a gastar más dinero tan solo por
aprender a hacer esto por Internet. Para poder realizar nuestro programa debemos entrar a la
página de Internet http://www.freesql.org en la cual crearemos nuestra base de datos.
En dicha página creamos nuestra base de datos y añadimos campos, hecho esto
comenzaremos a programar nuestra aplicación.
1.- En la parte del menú MYSQL, pulsamos create, y nos aparecerá la siguiente pantalla.
2.- En dicha pantalla nos pide:
Lo que está seleccionado dice “your database has been created and is now available”. Esto
quiere decir que ya está creada su base de datos.
Ahora debemos crear la tabla y campos en dicha base de datos. Para hacer esto debemos de
ir al menú “PhpMyAdmin”, y nos deberá aparecer la siguiente pantalla, donde teclearemos
nuestro nombre de usuario y contraseña.
Hecho esto nos aparecerá la siguiente ventana
En la parte izquierda de la pantalla, donde dice “Base de datos”, desplegamos la lista, y nos
deben aparecer las siguientes bases de datos:
La que creamos es la de “conexiondb”, el (0), nos indica que tenemos cero tablas creadas
en dicha base de datos.
Para crear una tabla seleccionamos “conexiondb” y damos clic con el botón izquierdo del
ratón, hecho esto veremos la siguiente pantalla.
En esta pantalla ponemos el nombre de la nueva tabla, en este caso pusimos el nombre de
“alumnos”, y el número de campos que tendrá son “2”. Pulsamos el botón “Continuar”.
Vemos la siguiente pantalla
VARCHAR significa Variable de tipo carácter, que nos indica que todo lo introducido en
dicho campo, se guardará como texto.
Pulsamos el botón “Grabar”, y nuestros campos estarán creados. Y listos para usarse.
Si todo salió bien veremos la siguiente pantalla:
Hecho esto, podemos comenzar a programar nuestra aplicación para que se conecte con
dicha base de datos.
Programando aplicación para conectarse a la base de datos
Primeramente debemos configurar el control con el que accederemos, para esto en Visual
Basic, vamos al menú Proyecto -> Referencias. Y activamos las casillas siguientes
Hecho esto creamos un control MsFlexGrid, para esto vamos al menú Proyecto ->
Componentes. Y seleccionamos el siguiente control
Ahora que ya tenemos el control lo insertamos en el formulario, junto con los demás
controles, como se ve en la pantalla.
En el control Flexgrid, modificamos las siguientes propiedades:
Nombre: Tabla
Cols: 2
FixedCols: 0
FixedRows: 1
Rows: 1
Explicación: Creamos las variables que ocuparemos para manipular la base de datos, con
el control ADO.
En el botón “Buscar”, colocamos el siguiente código:
Text2.Text = ""
If enc = 1 Then
Text2.Text = AdoS.Fields("nombre")
Command3.Enabled = True
Command4.Enabled = True
Else
MsgBox "El registro no se encontró", vbOKOnly, "Conexión web"
End If
Else
MsgBox "No existe ningún registro en la base de datos", vbOKOnly, "Conexión web"
End If
Explicación: Con la línea “If Ados.RecordCount >0 then”, indicamos que si la tabla tiene
registros, entonces entre a la condición.
AdoS.Movefirst, le indicamos que se mueva al primer registro.
En la línea “While Not (AdoS.EOF) And enc = 0”, indicamos que mientras no sea el último
registro de la tabla y la variable enc sea igual a cero, continúe el ciclo.
En la línea “If AdoS.Fields("numero") = Text1.Text Then”, indicamos que si el campo
numero es igual al texto que se encuentra en el Text1, entonces entre a la condición, donde
se marca la variable enc = 1, con lo que se saldría del ciclo, en caso contrario con la línea
“AdoS.MoveNext”, nos movemos al siguiente registro de la base de datos.
Creamos la función “mostrar_datos_en_tabla”
Explicación: Con esta función lo que se hace es mostrar los datos en el control
MSFlexGrid, que son los campos numero y nombre.
En el botón “Agregar datos”, colocar el siguiente código:
If enc = 1 Then
MsgBox "Registro existente", vbOKOnly, "Conexión web"
Else
AdoS.AddNew
AdoS.Fields("numero") = Text1.Text
AdoS.Fields("nombre") = Text2.Text
AdoS.Update
MsgBox "Datos almacenados", vbOKOnly, "Conexión web"
Text1.Text = ""
Text2.Text = ""
Call mostrar_datos_en_tabla
End If
Else
AdoS.AddNew
AdoS.Fields("numero") = Text1.Text
AdoS.Fields("nombre") = Text2.Text
AdoS.Update
MsgBox "Datos almacenados", vbOKOnly, "Conexión web"
Text1.Text = ""
Text2.Text = ""
Call mostrar_datos_en_tabla
End If
Text1.Text = ""
Text2.Text = ""
Command3.Enabled = False
Command4.Enabled = False
Call mostrar_datos_en_tabla
AdoS.Fields("numero") = Text1.Text
AdoS.Fields("nombre") = Text2.Text
AdoS.Update
Call mostrar_datos_en_tabla
Explicación: En este código podemos ver que no se utiliza la línea AddNew, ya que no
queremos agregar un nuevo registro, sino modificar el registro actual. Así que solamente
asignamos a los campos los nuevos valores de los Text1 y Text2.
En el botón “Cancelar”, colocar el siguiente código:
Text1.Text = ""
Text2.Text = ""
Command3.Enabled = False
Command4.Enabled = False
tabla.ColWidth(1) = 4500
tabla.TextMatrix(0, 0) = "Número"
tabla.TextMatrix(0, 1) = "Nombre"
Call mostrar_datos_en_tabla
Explicación: En este código la línea que más nos debe llamar la atención es:
“Driver};Server=www.freesql.org;Port=3306;Option=131072;Stmt=;Database=conexiondb
;Uid=conexiondb;Pwd=conectar;"
Y la siguiente línea también nos interesa “AdoS.Open "Select * From alumnos", Cxn,
adOpenStatic, adLockOptimistic”
Dicha línea también nos interesa ya que en esta indicamos la tabla que queremos abrir, que
en este caso fue alumnos.
En el Timer1, colocar el siguiente código:
If AdoS.State = 1 Then
Label2.Caption = "Conectado a la base de datos"
Else
Label2.Caption = "Error en la conexión con la base de datos"
End If
Explicación: Si el estado de la base de datos es “1”, quiere decir que la conexión con la
base de datos se estableció correctamente.
Colocado todo el código fuente, nuestro programa se conectará a la base de datos que
creamos.
¿Como programar un juego en red?
Para programar un juego en red, se necesitan simples pasos, los cuales son los siguientes:
1. Crear una pantalla de Servidor y una pantalla de cliente. Esto para que el juego
pueda sostenerse solo, y no necesite que otro programa actúe como servidor.
2. Establecer la conexión entre el cliente y el servidor.
3. Para enviar un comando, se debe enviar una clave, que el programa que lo recibe lo
interpretará como que debe hacer una acción. Antes de realizar dicha acción debe
informar al origen, que ya recibió la orden y que procederá a ejecutarla, esto para si
el origen desea ejecutar alguna otra acción.
4. Gestionar los posibles eventos en los dos programas: Cliente y servidor. Ya que si el
cliente ganó, debe aparecer un mensaje de que ganó y en el programa servidor debe
aparecer que perdió.
Programando el juego del gato en red
Debe ser tal como se muestra en la figura. Puede basarse en el código fuente proporcionado
para que sepa bien qué es lo que debe hacer.
Option1.Value = True
Winsock1.LocalPort = Text1.Text
Winsock1.Close
Winsock1.Listen
Frame1.Enabled = False
Frame2.Enabled = True
Command12.Visible = True
Winsock1.Close
Command12.Visible = False
Frame1.Enabled = True
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Winsock1.Close
Winsock1.Accept requestID
Explicación: En data arrival, llegan todos los datos que se reciben y es aquí donde los
procesamos.
Y por último en el Timer1, colocar el siguiente código:
Para conectarse a la red del MSN Messenger desde visual basic, primeramente debe colocar
las siguientes referencias, desde el menú Proyecto -> Referencias
Este código no lo incluí en esta parte ya que es más que entendible, puedes chocarlo en los
códigos que te proporciono.
Despedida