Conociendo las propiedades, m�todos y eventos del Control WinSock podemos pasar a la labor de la programaci�n.
El siguente es un 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.
�Identificaci�n de controles de la aplicaci�n Servidor
Para poder programar la siguiente aplicaci�n necesitan tener el Control WinSock en el formulario.
Para entender 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.
�Cambiar propiedades de los controles
A continuaci�n hace falta que cambiemos algunas propiedades de los controles, esta es 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" |
Command2 | Caption = "Enviar" |
Para que el ejemplo funcione a la perfecci�n conviene que seguir la ubicaci�n de los controles como esta indicado en la siguiente imagen.

�C�digo
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.
Private Sub Command1_Click() Winsock1.Listen End Sub
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.
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).
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.
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.
�Identificaci�n de controles de la aplicaci�n Cliente
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.
�Cambiar propiedades de los controles
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 | LocalPort = 888 |
Text1 | Text = |
Text2 | Text = |
Text3 | Text = |
Command1 | Caption = "Conectar" |
Command2 | Caption = "Enviar" |
Para tener una referencia de c�mo situar los controles observe la siguiente captura.

�C�digo
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).
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.
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.