pues en mis dias de buskeda de info interesante encontre por ahi este mini tutorial acerca del uso de sockets en visual basic, esta super basico e interesante, muy recomendado!
Windows Sockets
En Visual Basic disponemos de un control para acceder fácilmente a las APIs de sockets de Windows. Este se llama Winsock. Voy a exponer las principales características que necesitamos conocer para trabajar con este control, rematando el repaso con una aplicación que podremos ejecutar tanto en modo cliente, como en modo servidor; en nuestro propio equipo, o en varios.
Introducción
El control WinSock, nos proporciona un acceso sencillo a los servicios de red TCP y UDP. La diferencia entre ambos protocolos es que con TCP creamos y mantenemos una conexión entre varios equipos asegurando la integridad de los datos. Con UDP los equipos no establecen una conexión: es un protocolo sin conexiones.
Estableciendo las propiedades y llamando a los métodos del control, podremos conectar fácilmente con un equipo remoto e intercambiar datos en las dos direcciones.
Es un control visible únicamente en tiempo de diseño. En tiempo de ejecución, será invisible para el usuario.
Propiedades
LocalPort: puerto en el que se establecerá el socket (conexión) entre dos equipos. Si establecemos su valor a cero (0), el control se encargará de utilizar un puerto aleatorio.
LocalHostName: nombre de la máquina local.
LocalIP: dirección IP de la máquina local.
RemoteHost: equipo remoto al que se conecta la máquina local (puede ser un nombre de máquina o una dirección IP).
RemoteHostIP: IP del equipo remoto.
RemotePort: puerto del equipo remoto al que conectar.
State: estado de la comunicación entre los equipos. Valores:
0 - Cerrado
1 - Abierto
2 - Escuchando...
3 - Conexión pendiente
4 - Resolviendo host...
5 - Host resuelto
6 - Conectando...
7 - Conectado
8 - Cerrando
9 - Error
Métodos
Accept: acepta una petición de conexión entrante.
Bind: especifica una dirección IP y un puerto locales para establecer una conexión IP (este método lo utilizaremos cuando queramos que nuestra aplicación soporte múltiples adaptadores de protocolo).
Close: cierra una conexión
GetData: recupera el bloque actual de datos.
PeekData: como GetData.
Listen: establece la escucha por un determinado puerto.
SendData: envía datos a un equipo remoto.
Eventos
Connect: lanzado cuando un equipo remoto establece una comunicación (no cuando la creamos desde la máquina local).
Close: se produce cuando el equipo remoto cierra la conexión (no cuando la cerramos desde la máquina local).
ConnectionRequest: petición de conexión de un equipo remoto. Tendremos que llamar al método Accept para aceptarla.
DataArrival: cuando llegan datos del equipo remoto.
SendComplete: terminada una operación de envío.
SendProgress: se produce mientras se envían datos.
Error: cuando se produce un error en los procesos de segundo plano.
Ejemplo
Una vez mostradas las características básicas del control WinSock lo mejor es que lo veamos en acción. Para ello, aquí te puedes bajar un ejemplo que funciona tanto como cliente y, a la vez, como servidor (el mismo código nos sirve) estableciendo una conexión TCP. Esto, es de utilidad en una aplicación real ya que es muy probable que no sepamos cuando nuestra aplicación va a enviar o a recibir datos.
Todo el código está comentado, así que se puede apreciar perfectamente cómo trabaja el WinSock, un control muy sencillo de utilizar y al mismo tiempo, muy potente.
vaya que esta interesante este proyecto, es lo basico y todo el codigo viene comentado para que no te mueras en el intento de aprenderlo
http://www.programming-vb.com/vb/ctr_int/sockets.zip
Extraido de aki htp://www.programming-vb.com