Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Sockets Visual

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

INTRODUCCIÒN

En vista del aprendizaje que tenemos diariamente en el aula de clases, nos


vemos desafiados por un mundo lleno de conocimientos que invoca a la
investigación.
Este trabajo fue realizado precisamente para llenar las expectativas y ansias de
intelectualidad que nos brinda la carrera, desde bases de datos, vemos la
importancia de la arquitectura cliente servidor.
Es exactamente lo que se plasmara en el siguiente trabajo, la forma de
Conocer una arquitectura que en este momento es una de las más importantes
y utilizadas en el ámbito de enviar y recibir información, también es una
herramienta potente para guardar los datos en una base de datos como
servidor.

-------------------------------------
Con respecto a la definición de arquitectura cliente/servidor se encuentran las
siguientes definiciones:
 Cualquier combinación de sistemas que pueden colaborar entre si para dar a
los usuarios toda la información que ellos necesiten sin que tengan que saber
donde esta ubicada.
 Es una arquitectura de procesamientos cooperativo donde uno de los
componentes pide servicios a otro.
 Es un procesamiento de datos de índole colaborativo entre dos o más
computadoras conectadas a una red.
 El término cliente/servidor es originalmente aplicado a la arquitectura de
software que describe el procesamiento entre dos o más programas: una
aplicación y un servicio soportante.
 IBM define al modelo Cliente/Servidor. "Es la tecnología que proporciona al
usuario final el acceso transparente a las aplicaciones, datos, servicios de
cómputo o cualquier otro recurso del grupo de trabajo y/o, a través de la
organización, en múltiples plataformas. El modelo soporta un medio ambiente
distribuido en el cual los requerimientos de servicio hechos por estaciones de
trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otros
computadores llamados servidores".
 "Es un modelo para construir sistemas de información, que se sustenta en la
idea de repartir el tratamiento de la información y los datos por todo el
sistema informático, permitiendo mejorar el rendimiento del sistema global de
información"

Elementos principales
"Los elementos principales de la arquitectura cliente servidor son justamente el
elemento llamado cliente y el otro elemento llamado servidor". Por ejemplo
dentro de un ambiente multimedia, el elemento cliente seria el dispositivo que
puede observar el vídeo, cuadros y texto, o reproduce el audio distribuido por el
elemento servidor.
Por otro lado el cliente también puede ser una computadorapersonal o una
televisión inteligente que posea la capacidad de entender datos digitales.
Dentro de este caso el elemento servidor es el depositario del vídeo digital,
audio, fotografías digitales y texto y los distribuye bajo demanda de ser una
maquina que cuenta con la capacidad de almacenar los datos y ejecutar todo el
software que brinda éstos al cliente.
EN RESUMEN
C/S es una relación entre procesos corriendo en máquinas separadas
El servidor (S) es un proveedor de servicios.
El cliente (C) es un consumidor de servicios.
C y S Interactúan por un mecanismo de pasaje de mensajes:
Pedido de servicio.
Respuesta
ALGUNOS ANTECEDENTES, ¿PORQUE FUE CREADO?
Existen diversos puntos de vista sobre la manera en que debería efectuarse el
procesamiento de datos, aunque la mayoría que opina, coincide en que nos
encontramos en medio de un proceso de evolución que se prolongará todavía
por algunos años y que cambiará la forma en que obtenemos y utilizamos la
información almacenada electrónicamente.
El principal motivo detrás de esta evolución es la necesidad que tienen las
organizaciones (empresas o instituciones públicas o privadas), de realizar sus
operaciones más ágil y eficientemente, debido a la creciente presión
competitiva a la que están sometidas, lo cual se traduce en la necesidad de
que su personal sea mas productivo, que se reduzcan los costos y gastos de
operación, al mismo tiempo que se generan productos y servicios más
rápidamente y con mejor calidad.
En este contexto, es necesario establecer una infraestructura de procesamiento
de información, que cuente con los elementos requeridos para proveer
información adecuada, exacta y oportuna en la toma de decisiones y para
proporcionar un mejor servicio a los clientes.
El modelo Cliente/Servidor reúne las características necesarias para proveer
esta infraestructura, independientemente del tamaño y complejidad de las
operaciones de las organizaciones públicas o privadas y, consecuentemente
desempeña un papel importante en este proceso de evolución.
Evolución de la arquitectura cliente servidor
La era de la computadora central
"Desde sus inicios el modelo de administración de datos a través de
computadoras se basaba en el uso de terminales remotas, que se conectaban
de manera directa a una computadora central". Dicha computadora central se
encargaba de prestar servicios caracterizados por que cada servicio se
prestaba solo a un grupo exclusivo de usuarios.
La era de las computadoras dedicadas
Esta es la era en la que cada servicio empleaba su propia computadora que
permitía que los usuarios de ese servicio se conectaran directamente. Esto es
consecuencia de la aparición de computadoras pequeñas, de fácil uso, más
baratas y más poderosas de las convencionales.
La era de la conexión libre
Hace mas de 10 años que la computadoras escritorio aparecieron de manera
masiva. Esto permitió que parte apreciable de la carga de trabajo de cómputo
tanto en el ámbito de cálculo como en el ámbito de la presentación se lleven a
cabo desde el escritorio del usuario. En muchos de los casos el usuario obtiene
la información que necesita de alguna computadora de servicio. Estas
computadoras de escritorio se conectan a las computadoras de servicio
empleando software que permite la emulación de algún tipo de terminal. En
otros de los casos se les transfiere la información haciendo uso de recursos
magnéticos o por trascripción.
La era del cómputo a través de redes

Esta es la era que esta basada en el concepto de redes de computadoras, en


la que la información reside en una o varias computadoras, los usuarios de esta
información hacen uso de computadoras para laborar y todas ellas se
encuentran conectadas entre si. Esto brinda la posibilidad de que todos los
usuarios puedan acceder a la información de todas las computadoras y a la vez
que los diversos sistemas intercambien información.
La era de la arquitectura cliente servidor
"En esta arquitectura la computadora de cada uno de los usuarios, llamada
cliente, produce una demanda de información a cualquiera de las
computadoras que proporcionan información, conocidas como servidores"estos
últimos responden a la demanda del cliente que la produjo.
Los clientes y los servidores pueden estar conectados a una red local o una red
amplia, como la que se puede implementar en una empresa o a una red
mundial como lo es la Internet.
Bajo este modelo cada usuario tiene la libertad de obtener la información que
requiera en un momento dado proveniente de una o varias fuentes locales o
distantes y de procesarla como según le convenga. Los distintos servidores
también pueden intercambiar información dentro de esta arquitectura.
QUE ES UNA ARQUITECTURA
Una arquitectura es un entramado de componentes funcionales que
aprovechando diferentes estándares, convenciones, reglas y procesos, permite
integrar una amplia gama de productos y servicios informáticos, de manera que
pueden ser utilizados eficazmente dentro de la organización.
Debemos señalar que para seleccionar el modelo de una arquitectura, hay que
partir del contexto tecnológico y organizativo del momento y, que la arquitectura
Cliente/Servidor requiere una determinada especialización de cada uno de los
diferentes componentes que la integran.
QUE ES UN CLIENTE
Es el que inicia un requerimiento de servicio. El requerimiento inicial puede
convertirse en múltiples requerimientos de trabajo a través de redes LAN o
WAN. La ubicación de los datos o de las aplicaciones es totalmente
transparente para el cliente.
QUE ES UN SERVIDOR
Es cualquier recurso de cómputo dedicado a responder a los requerimientos
del cliente. Los servidores pueden estar conectados a los clientes a través de
redes LANs o WANs, para proveer de múltiples servicios a los clientes y
ciudadanos tales como impresión, acceso a bases de datos, fax,
procesamiento de imágenes, etc.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Este es el ejemplo gráfico de la arquitectura cliente servidor.
ELEMENTOS DE LA ARQUITECTURA CLIENTE/SERVIDOR
En esta aproximación, y con el objetivo de definir y delimitar el modelo de
referencia de una arquitectura Cliente/Servidor, debemos identificar los
componentes que permitan articular dicha arquitectura, considerando que toda
aplicación de un sistema de información está caracterizada por tres
componentes básicos:
 Presentación/Captación de Información
 Procesos
 Almacenamiento de la Información

Los cuales se suelen distribuir tal como se presenta en la figura:

Aplicaciones Cliente/Servidor
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Y se integran en una arquitectura Cliente/Servidor en base a los elementos que
caracterizan dicha arquitectura, es decir:
 Puestos de Trabajo
 Comunicaciones
 Servidores

Tal como se presenta en la figura:


Arquitectura Cliente/Servidor
Para ver el gráfico seleccione la opción "Descargar" del menú superior
De estos elementos debemos destacar:
El Puesto de Trabajo o Cliente
Una Estación de trabajo o microcomputador (PC: Computador Personal)
conectado a una red, que le permite acceder y gestionar una serie de
recursos» el cual se perfila como un puesto de trabajo universal. Nos referimos
a un microcomputador conectado al sistema de información y en el que se
realiza una parte mayoritaria de los procesos.
Se trata de un fenómeno en el sector informático. Aquellos responsables
informáticos que se oponen a la utilización de los terminales no programables,
acaban siendo marginados por la presión de los usuarios.
Debemos destacar que el puesto de trabajo basado en un microcomputador
conectado a una red, favorece la flexibilidad y el dinamismo en las
organizaciones. Entre otras razones, porque permite modificar la ubicación de
los puestos de trabajo, dadas las ventajas de la red.
Los Servidores o Back-end
Una máquina que suministra una serie de servicios como Bases de Datos,
Archivos, Comunicaciones,...).
Los Servidores, según la especialización y los requerimientos de los servicios
que debe suministrar pueden ser:
 Mainframes
 Miniordenadores
 Especializados (Dispositivos de Red, Imagen, etc.)

Una característica a considerar es que los diferentes servicios, según el caso,


pueden ser suministrados por un único Servidor o por varios Servidores
especializados.
Las Comunicaciones
En sus dos vertientes:
 Infraestructura de redes
 Infraestructura de comunicaciones

Infraestructura de redes
Componentes Hardware y Software que garantizan la conexión física y la
transferencia de datos entre los distintos equipos de la red.
Infraestructura de comunicaciones
Componentes Hardware y Software que permiten la comunicación y su gestión,
entre los clientes y los servidores.
La arquitectura Cliente/Servidor es el resultado de la integración de dos
culturas. Por un lado, la del Mainframe que aporta capacidad de
almacenamiento, integridad y acceso a la información y, por el otro, la del
computador que aporta facilidad de uso (cultura de PC), bajo costo,
presentación atractiva (aspecto lúdico) y una amplia oferta en productos y
aplicaciones.
CARACTERISTICAS DEL MODELO CLIENTE/SERVIDOR
En el modelo CLIENTE/SERVIDOR podemos encontrar las siguientes
características:
1. El Cliente y el Servidor pueden actuar como una sola entidad y también
pueden actuar como entidades separadas, realizando actividades o tareas
independientes.
2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas,
o en la misma plataforma.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
3. Un servidor da servicio a múltiples clientes en forma concurrente.
4. Cada plataforma puede ser escalable independientemente. Los cambios
realizados en las plataformas de los Clientes o de los Servidores, ya sean por
actualización o por reemplazo tecnológico, se realizan de una manera
transparente para el usuario final.
5. La interrelación entre el hardware y el software están basados en una
infraestructura poderosa, de tal forma que el acceso a los recursos de la red no
muestra la complejidad de los diferentes tipos de formatos de datos y de los
protocolos.
6. Un sistema de servidores realiza múltiples funciones al mismo tiempo que
presenta una imagen de un solo sistema a las estaciones Clientes. Esto se
logra combinando los recursos de cómputo que se encuentran físicamente
separados en un solo sistema lógico, proporcionando de esta manera el
servicio más efectivo para el usuario final.
También es importante hacer notar que las funciones Cliente/Servidor pueden
ser dinámicas. Ejemplo, un servidor puede convertirse en cliente cuando realiza
la solicitud de servicios a otras plataformas dentro de la red.
Su capacidad para permitir integrar los equipos ya existentes en una
organización, dentro de una arquitectura informática descentralizada y
heterogénea.
7. Además se constituye como el nexo de unión mas adecuado para reconciliar
los sistemas de información basados en mainframes o minicomputadores, con
aquellos otros sustentados en entornos informáticos pequeños y estaciones de
trabajo.
8. Designa un modelo de construcción de sistemas informáticos de carácter
distribuido.
1. Su representación típica es un centro de trabajo (PC), en donde el usuario
dispone de sus propias aplicaciones de oficina y sus propias bases de
datos, sin dependencia directa del sistema central de información de la
organización, al tiempo que puede acceder a los
2. recursos de este host central y otros sistemas de la organización ponen a
su servicio.

En conclusión, Cliente/Servidor puede incluir múltiples plataformas, bases de


datos, redes y sistemas operativos. Estos pueden ser de distintos proveedores,
en arquitecturas propietarias y no propietarias y funcionando todos al mismo
tiempo. Por lo tanto, su implantación involucra diferentes tipos de estándares:
APPC, TCP/IP,OSI, NFS, DRDA corriendo sobre DOS, OS/2, Windows o PC
UNIX, en TokenRing, Ethernet, FDDI o medio coaxial, sólo por mencionar
algunas de las posibilidades.
TIPOS DE CLIENTES
1. "cliente flaco":

 Servidor rápidamente saturado.


 Gran circulación de datos de interfase en la red.

1. "cliente gordo":

 Casi todo el trabajo en el cliente.


 No hay centralización de la gestión de la BD.
 Gran circulación de datos inútiles en la red.
TIPOS DE SERVIDOR
Servidores de archivos
Servidor donde se almacena archivos y aplicaciones de productividad como por
ejemplo procesadores de texto, hojas de cálculo, etc.
Servidores de bases de datos
Servidor donde se almacenan las bases de datos, tablas, índices. Es uno de
los servidores que más carga tiene.
Servidores de transacciones
Servidor que cumple o procesa todas las transacciones. Valida primero y recién
genera un pedido al servidor de bases de datos.
Servidores de Groupware
Servidor utilizado para el seguimiento de operaciones dentro de la red.
Servidores de objetos
Contienen objetos que deben estar fuera del servidor de base de datos. Estos
objetos pueden ser videos, imágenes, objetos multimedia en general.
Servidores Web
Se usan como una forma inteligente para comunicación entre empresas a
través de Internet.
Este servidor permite transacciones con el acondicionamiento de un browser
específico.
Estilos del modelo cliente servidor

Conceptos Basicos de Cliente Servidor

Un programa simple es un conjunto de instrucciones que generalmente


devuelven un valor al usuario, ya sea numérico o una cadena de letras, este
dato es el resultado de la acción del usuario sobre el programa, ya que el
usuario fue el que solicitó el dato.
Al igual que un usuario se comunica con el programa por medio del teclado,
dos programas se pueden comunicar entre sí por medio de un control especial
que se denomina WinSock Control. Este control esta disponible en el lenguaje
Visual Basic, y su nombre proviene de Windows Sockets.

El Winsock Control como opción predeterminada no se encuentra disponible


en la barra de controles estándar de Visual Basic, para acceder a él debemos
agregarlo manualmente mediante Proyecto> Componentes> y luego
seleccionar WinSock Control y Aceptar. No es visible en tiempo de ejecución,
lo que significa que solo nosotros sabemos que el control se encuentra en
nuestra aplicación y cuáles son sus propiedades, aunque también se pueden
definir en tiempo de ejecución.
Este tipo de aplicaciones Cliente/Servidor permiten comunicar programas
entre sí, en consecuencia también permiten comunicar varias computadoras,
porque habiendo un programa en la computadora llama "Oscar_1" y otro en la
computadora llama "Daniel_1" ambos programas se pueden comunicar a
través de Internet y compartir información, o adquirir información sin saber que
el dueño de la computadora lo autoriza. Esto frecuentemente trae problemas
al querer distinguir si un programa esta autorizado por el dueño o el encargado
(administrador o sysop) para acceder al sistema. Varios administradores
permiten el acceso, pero a la misma vez restringen las carpetas importantes
de sus computadoras para no correr el riesgo de perder información vital. Si el
programa que se usa para acceder a otra computadora esta autorizado por el
encargado de la PC se puede denominar "Herramienta de administración
remota", en cambio si el acceso no es permitido o no se avisa que se quiere
entrar y se hace a la fuerza el programa recibe el nombre de "Troyano".

Troyanos 1

Un troyano es un aplicación
"disfrazada" de un programa útil,
consta de dos programas, el
"Servidor" es el que se encarga de
abrir un puerto en la PC a la que
se quiere tener acceso y dejar el
puerto a la escucha, es decir
esperar a que se realice una
conexión al puerto para dar el
acceso a la máquina.

Y el "Cliente", este es el programa que se conecta al puerto que el Servidor


dejó abierto, solicita que se realice la conexión y después comienza a
transmitir información, pidiendo datos de la PC remota, tales como
Información del sistema, contraseñas, archivos importantes, etc. Se pueden
utilizar de dos formas completamente distintas;

Como herramienta de administración remota: que permite manipular el


sistema a distancia, ideal para personas que necesitan urgente un archivo de
la PC de su oficina y se encuentran en su casa. Se puede considerar como
tal solo cuando el usuario tenga el acceso permitido a esa PC

Como herramienta para hackear: (Hackear: penetrar un sistema informático


sin acceso) esta es la forma de utilización que prefiere cualquier persona con
una conexión a Internet y ganas de espiar lo que hace otra persona
conectada a Internet o a su Red privada, también llamada LAN (Local Area
Network o Red de Area Local). Pudiendo acceder a sus archivos
confidenciales, contraseñas, recursos compartidos, conversaciones que
toman lugar en tiempo real, o borrar archivos fundamentales tales como por
ejemplo: COMMAND.COM (dejando a la PC "víctima" sin poder arrancar, a
menos que el usuario "atacado" sepa iniciar desde un disco de rescate o de
inicio.

Los puertos que se dejan a la escucha generalmente sol altos, es decir


puertos que pasan del número 500 o el 1000, para garantizar que ningún otro
programa pueda estar usándolos y cancelar la conexión del troyano. El uso
de estos programas no es ilegal a menos que el usuario final opte por entrar a
la máquina remota sin autorización. En dicho caso se puede proceder
legalmente de acuerdo al país en el que se encuentre la PC "hackeada", es
decir la computadora a la que se infiltró el hacker. (hacker: persona
interesada en el funcionamiento y vulnerabilidad de los sistemas operativos,
lenguajes de programación y seguridad informática). Por ejemplo en EEUU
se puede condenar a una larga sentencia por hacer eso, pero también hay
que conocer la otra cara de la moneda, es el caso de Argentina, todavía no
tiene tipificado en el código penal la intrusión en computadoras sin
autorización, esto quiere decir que no es un delito condenable. Aquí debajo
una lista de los troyanos más conocidos del Underground, es decir de la
sociedad hacker, o más bien todo aquello que sea difícil de encontrar para el
usuario común. La palabra UnderGround significa debajo de la tierra, lo que
para la mayoría significa algo oculto y qué otro ejemplo más conciso que los
programas que usa un hacker. Cabe aclarar que el uso de estos programas
comunmente denominados "para hackers" no convierte a nadie pero
absolutamente nadie en "hacker". El hacker no se hace de la noche a la
mañana, es más, el hacker no se hace, nace.

NetBus: Este "troyano" o "herramienta de administración remota" fue uno de


los más difundidos en Internet, ganó un gran número de usuarios adictos al
programa por su sencillez de uso y la rapidez del mismo. El tamaño del
servidor (el encargado de permitir el acceso a la máquina con o sin
autorización) ahora parece grande en comparación con los troyanos nuevos.
Tamaño del servidor: 495 KB aproximadamente.

Back Oriffice 2000: Sin lugar a duda el troyano que más pánico causó en los
últimos tiempos. Fue el preferido de todos por ser el primero que salió en
Internet con una facilidad de uso impresionante y características que otros
troyanos aun no imaginaban.

Introducción a Visual Basic.


Comenzando a programar en WINSOCK

Protocolos TCP/IP y UDP

Como anteriormente quedó aclarado dos programas se pueden conectar


entre sí a través de internet o de una LAN.
Internet usa el protocolo TCP/IP que significa "Transmision Control Protocol /
Internet Protocol", es el que se encarga de recibir paquetes de información y
redirigirlos al usuario

final que los solicitó. Este protocolo es el preferido por todos ya que posee una
característica que UDP le envidia, TCP/IP puede verificar que el paquete de
información haya llegado con éxito al destinatario final, concretando así la
transacción.
Por el contrario UDP no puede hacer esto, solo manda el paquete con la
información y no verifica que haya llegado satisfactoriamente, poniendo de
esta manera en peligro al paquete, ya que puede no llegar entero al
destinatario y por lo tanto no sirve si el paquete no llega en su totalidad.
Todas las máquinas que están conectadas a Internet tienen asignadas un
número que se forma con 4 cifras de 3 dígitos (que no pueden superar al
número 255). Ejemplo del IP máximo que se puede encontrar:
255.255.255.255
Propiedades metodos y eventos de WINSOCK

Propiedades, métodos y eventos de WinSock.

Una vez que tenemos el WinSock control en nuestra barra de controles en


Visual Basic ya podemos comenzar a ver las propiedades, eventos y métodos
más importantes del control.

Para agregarlo manualmente ir a Proyecto> Componentes> y luego


seleccionar WinSock Control y Aceptar. Como mencionamos anteriormente
este control no es visible en tiempo de ejecución.
Primero abrimos un proyecto (EXE Estándar) y colocamos en control en
cualquier parte del formulario. Vamos a comenzar por ver las propiedades,
estas pueden ser puestas en tiempo de diseño como también en tiempo de
ejecución. A continuación las propiedades más importantes;

Lista de propiedades más importantes


LocalIP: Devuelve la dirección IP de la máquina local en el formato de cadena
con puntos de dirección IP (xxx.xxx.xxx.xxx).

RemoteHost: Establece el equipo remoto al que se quiere solicitar la conexión.

LocalPort: Establece el puerto que se quiere dejar a la escucha.

RemotePort: Establece el número del puerto remoto al que se quiere conectar.

State: Verifica si el Control WinSock esta siendo utilizado o no.

Estas son algunas de las propiedades más importantes, y a continuación la


sintaxis de cada propiedad.
Objeto.Propiedad = Valor

Donde Objeto va el nombre del Control WinSock, el nombre predeterminado


cuando lo incluimos en alguna aplicación es "WinSock1". Luego le sigue la
propiedad que deseamos asignar y finalmente el valor que la misma tomará.
Entonces por ejemplo si queremos probar la propiedad LocalIP debemos
seguir el ejemplo 1.

Ejemplo 1

Crear un Proyecto (EXE Estándar) y agregar el WinSock Control. Luego


agregar una etiqueta vacía, es decir un Label. Despues introducimos el
siguiente código.

Private Sub Form_Load()


Label1.caption = WinSock1.LocalIP
End Sub

Este simple ejemplo nos da de forma rápida nuestro IP, aunque no estemos
conectados a Internet el IP aparece igual, solo que siempre va a tomar el valor
: 127.0.0.1
Ahora que sabemos manejar las propiedades podemos seguir con los
Métodos. A continuación la lista de algunos de los Métodos más importantes
del Control WinSock .
Propiedades metodos y eventos de WINSOCK

Lista de Métodos más importantes

Accept: Sólo para las aplicaciones de servidor TCP. Este método se utiliza
para aceptar una conexión entrante cuando se está tratando un evento
ConnectionRequest.

GetData: Recupera el bloque actual de datos y lo almacena en una variable de


tipo Variant.

Listen: Crea un socket y lo establece a modo de escucha.

SendData: Envía datos a un equipo remoto.

Lista de Eventos más importantes

ConnectionRequest: Se produce cuando el equipo remoto solicita una


conexión. Sin este evento no se puede llevar a cabo la conección.

Connect: Se produce cuando el equipo local se conecta al equipo remoto y se


establece una conexión.

Close: Se produce cuando el equipo remoto cierra la conexión. Las


aplicaciones deben usar el método Close para cerrar correctamente una
conexión TCP.

DataArrival: Se produce cuando llegan nuevos datos. Este evento es


importante, ya que debemos hacer algo con la información que llega.

La sintaxis de los métodos y eventos es igual a la sintaxis de las propiedades,


por lo cual no vamos a hacer referencia a ella.
Programando la primera aplicación Cliente/Servidor.

Conociendo las propiedades, métodos y eventos del Control WinSock


podemos pasar a la engorrosa labor de la programación.
Para poder programar la siguiente aplicación necesitan tener el Control
WinSock en el formulario, eso siempre es fundamental para que el programa
ande.

Para enterder el correcto funcionamiento del protocolo TCP/IP vamos a


empezar por programar la aplicación Servidor a la cual luego se conectará el
Cliente.
Comenzamos por crear un proyecto nuevo (EXE estándar) para el Servidor, y
agregamos la siguiente lista de controles al formulario principal. La ubicación
de dichos controles es a gusto del programador, siempre tratando de que el
usuario final este a gusto con el producto y que se pueda manejar libremente
sin problemas por el entorno del mismo.

- WinSock Control
- 2 cajas de texto (TextBox)
- 2 botones.

A continuación hace falta que cambiemos algunas propiedades de los


controles, debajo la lista de controles con las respectivas propiedades a
cambiar.

Control (nombre predeterminado) Propiedad (nuevo valor)


WinSock1 LocalPort = 888
Text1 Text =
Text2 Text =
Command1 Caption = "Escuchar"

Para que el ejemplo funcione a la perfección conviene que seguir la ubicación


de los controles como esta indicado en la figura 1.

Una vez hecho esto podemos empezar a tipear código. El sangrado del
programa es una cuestión de entendimiento para el programador, algunos
recurren a éste como otros no, eso también queda a criterio del que programa.

En el Evento Click del Command1 incluimos el siguiente código; (sólo lo que


esta en NEGRITA, el resto es en modo de ayuda, ya que aparece cuando se
hace doble click en algun control).

Private Sub Command1_Click()


Winsock1.Listen
End Sub
Programando la primera aplicación Cliente/Servidor 2

Esto hace que el Control WinSock empiece a funcionar, escuchando el puerto


que se indicó en las propiedades de dicho control. Este puerto es el 888.
Ahora si realizamos todo a la perfección el puerto 888 esta siendo vigilado
para aceptar conexiones remotas.

Luego en el Evento DataArrival del WinSock;

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)


Dim datos As String
Winsock1.GetData datos
Text1.Text = Text1.Text + datos
End Sub

Datos queda transformada en una variable de cadena, y WinSock almacena


los datos que recibe del Cliente en el buffer y luego ingresan a la variable
datos, dicha variable mostrará su contenido en el control TextBox (Text1).

En el evento ConnectionRequest;

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)


Winsock1.Close
Winsock1.Accept requestID
End Sub

Este evento es muy importante, permite aceptar la petición de conexión. Sin


este evento el resto del programa no tendría efecto.

En el evento Click del command2;

Private Sub Command2_Click()


Dim enviar As String
enviar = Text2.Text
Winsock1.SendData enviar
End Sub
Esto permite enviar el texto que se introduzca en el TextBox número 2.

Por ahora este es un simple programa Servidor, lo que hace es: designar un
puerto, dejarlo a la escucha para aceptar conexiones, si se realiza una
petición de conexión aceptarla, y por último enviar datos al Cliente y recibir
los datos que éste mande.

Para seguir programando el Cliente hace falta crear un nuevo proyecto y en el


formulario principal incluir la siguiente lista de controles:

- WinSock Control
- 3 cajas de texto (TextBox)
- 2 botones.

Como lo hicimos anteriormente hace falta cambiar algunas propiedades.


Debajo la lista de controles con las respectivas propiedades para cambiar.

Control (nombre predeterminado) Propiedad (nuevo valor)


WinSock1 RemotePort = 888
Text1 Text =
Text2 Text =
Text3 Text =
Command1 Caption = "Conectar"
Command2 Caption = "Enviar"

Para tener una referencia de cómo situar los controles conviene seguir la
Figura 2.

Figura 2

En el método del command1;

Private Sub Command1_Click()


Winsock1.RemoteHost = Text3.Text
Winsock1.Connect
End Sub

El evento connect permite conectar al programa servidor que esta esperando


la solicitud, este evento requiere un parámetro fundamental, el IP o nombre de
host el cual es introducido previamente a la conexión en el cuadro de texto
número 3 (Text3).

En el evento DataArrival del WinSock Control;

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)


Dim datos As String
Winsock1.GetData datos
Text1.Text = Text1.Text + datos
End Sub

Esto permite a la aplicación (a través de WinSock) recibir información del


servidor y mostrarla en pantalla.

En el método del command2;

Private Sub Command2_Click()


Dim enviar As String
enviar = Text2.Text
Winsock1.SendData enviar
End Sub

Estas instrucciones son necesarias para enviar información al servidor.

Este ejemplo del primer programa Cliente / Servidor es muy simple, para
utilizarlo al máximo es necesario por ejemplo poner las propiedades de los
TextBox en Multiline, lo que hace que si los datos recibidos exceden el tamaño
del TextBox estos datos vayan directo a la línea de abajo.

Un programa simple es un conjunto de instrucciones que generalmente


devuelven un valor al usuario, ya sea numérico o una cadena de letras, este
dato es el resultado de la acción del usuario sobre el programa, ya que el
usuario fue el que solicitó el dato.

Al igual que un usuario se comunica con el programa por medio del teclado,
dos programas se pueden comunicar entre sí por medio de un control especial
que se denomina WinSock Control. Este control esta disponible en el lenguaje
Visual Basic, y su nombre proviene de Windows Sockets.
El Winsock Control como opción predeterminada no se encuentra disponible
en la barra de controles estándar de Visual Basic, para acceder a él debemos
agregarlo manualmente mediante Proyecto> Componentes> y luego
seleccionar WinSock Control y Aceptar. No es visible en tiempo de ejecución,
lo que significa que solo nosotros sabemos que el control se encuentra en
nuestra aplicación y cuáles son sus propiedades, aunque también se pueden
definir en tiempo de ejecución.
Este tipo de aplicaciones Cliente/Servidor permiten comunicar programas
entre sí, en consecuencia también permiten comunicar varias computadoras,
porque habiendo un programa en la computadora llama "Oscar_1" y otro en la
computadora llama "Daniel_1" ambos programas se pueden comunicar a
través de Internet y compartir información, o adquirir información sin saber que
el dueño de la computadora lo autoriza. Esto frecuentemente trae problemas
al querer distinguir si un programa esta autorizado por el dueño o el encargado
(administrador o sysop) para acceder al sistema. Varios administradores
permiten el acceso, pero a la misma vez restringen las carpetas importantes
de sus computadoras para no correr el riesgo de perder información vital. Si el
programa que se usa para acceder a otra computadora esta autorizado por el
encargado de la PC se puede denominar "Herramienta de administración
remota", en cambio si el acceso no es permitido o no se avisa que se quiere
entrar y se hace a la fuerza el programa recibe el nombre de "Troyano".

También podría gustarte