Resumen Cliente / Servidor en TCP/IP

Te mando un tutorial que estoy realizando.
Espero que te sirva.


Un saludo...



CLIENTE/SERVIDOR EN TCP/IP

 Cuando me conecto a una máquina doy una dirección y un puerto.

 Si conecto dos aplicaciones a un mismo puerto las dos aplicaciones podrán hablar.

 Usaremos el Microsoft Windsock Control 5.0. es un control que usa los sockets (conexiones punto a punto en un puerto determinado).

 Haremos dos aplicaciones:

Servidora:

 Añado el control.
 Pongo la propiedad Protocol a ockTCPProtocol (esta opción recibe confirmación, el udp no confirma, pero es más rápido).

 Winsock1.LocalHostName = Nombre de la máquina
 Winsock1.LocalIP = Dirección IP de la máquina a la que me voy a conectar
 Winsock1.LocalPort = Nombre del puerto por el que me voy a conectar
            Ha de ser un número >1024. Nosotros usaremos el 1066.
 Winsock1.Listen = Se pone a la escucha. Espera a que alguien se conecte en el
          puerto dado.

 Cuando alguien se intenta conectar salta el evento ConnectionRequest. Se le da un requestID totalmente aleatorio.

 Winsock1.Close ‘cierra la escucha
 Winsock1.Accept requestID ‘acepta la conexión

 A partir de ahí hay diálogo.

 Winsock1.RemoteHostIP es la dirección IP de la máquina que se intenta conectar con nosotros.

 Cuando llegan datos a esta aplicación se da el evento DataArrival.

 Dim vtData As String
 Winsock1.GetData vtData, vbString ‘toma los datos

 vbString es el tipo de datos de vtData.
 Después de manejar los datos, si quiero mandar una respuesta, o lo que sea:

 Winsock1.SendData vtData ‘manda los datos vtData


NOTA:
Hay diálogo entre 2 máquinas, no entre más.
El parámetro bytesTotal es la cantidad de información que se está recibiendo.


La conexión se cierra cuando uno de los dos cierra la conexión, llamando al método Close. Entonces se da el evento Close.

 La otra aplicación hace un Close y a mi se me da el evento Close:

 Winsock1.Close ‘yo también cierro
 Winsock1.Listen ‘me pongo de nuevo a escuchar


Cliente:

 Me conecto con Winsock1.Connect

 Cuando acepta la conexión la servidora (con accept) sucede el evento Connect.

 La propiedad State nos dice el estado de la conexión:

 if Winsock1.State = sckConnected then
  Winsock1.SendData InputBox(“Datos”)
 else
  MsgBox “Sin conexión”
 end if


=================================
Si puede programarse, puede imaginarse.
ramon.egido@adecco.es
Programador Senior.
InterActive Development Studio, S.L.



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com