El ejemplo de Sockets, que deje anteriormente, corre para consola o para "Windows" como tu dices (aplicaciones con Interfaz Grafica), da lo mismo. Para hacer conexiones tcp/ip debes hacerlo utilizando las clases del Namespace " System.Net.Sockets". No tengo la menor idea de si existe algun control que facilite las cosas, ya que no tengo el Visual Studio .NET (hasta el momento estoy programando con el ".NET Framework SDK" a mano).
Te repito el ejemplo de conexion TCP con sockets:
' ***Importando los namespaces necesarios***
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
'.. Aqui deberia algo de codigo
'Y aqui esta la funcion que establece la conexion
'Esta recibe por parametro el servidor al cual nos conectaremos
Public Function Conectar(server As String) As Boolean
Dim hostadd As IPAddress
' Resolviendo el Host remoto...
hostadd = Dns.Resolve(server).AddressList(0)
' Creando la dirección completa....
' ... me conectare al puerto 23...
Dim EPhost As New IPEndPoint(hostadd, 23)
' Registrando el socket ...
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Intentando conexión con el host ...
s.Connect(EPhost)
If Not s.Connected Then
Console.WriteLine( "Imposible Conectarse al Host" )
Return False
Else
Console.WriteLine( "Conexión exitosa" )
Return True
End If
End Function
'*** Fin de la funcion ***
Si necesitas ayuda con los metodos de envio y recepcion de datos, enviame un e-mail.