Hola.
Hacer un chat en Visual Basic que simplemente funcione no es complicado. Simplemente es usar Winsock. Creas un servidor que escuche en un puerto determinado y un cliente que envie datos a ese puerto.
Pongamos un ejemplo sencillo. Abrimos un proyecto nuevo, hacemos una ventanita con dos textbox, un botón y un control winsock:
http://img95.imageshack.us/img95/5813/chat10eq.jpg
Al control winsock lo llamamos sockchat y le damos las siguientes propiedades:
sockChat.LocalPort = XXXX
sockChat.Listen
Donde "XXXX" es el puerto que quieres usar.
Ahora, los "private subs" para cada acción:
Public Sub sockChat_Close()
sockChat.Close
sockChat.Listen
Unload frmChat
End Sub
Private Sub sockChat_ConnectionRequest(ByVal requestID As Long)
sockChat.Close
sockChat.Accept requestID
frmChat.Show
End Sub
- Para parsear el texto que llega al socket y mostrarlo en el primer textbox.
Private Sub sockChat_DataArrival(ByVal bytesTotal As Long)
Dim txtData As String
sockChat.GetData txtData
frmChat.txtChatAll.Text = frmChat.txtChatAll.Text & txtData
frmChat.txtChatAll.SelStart = Len(frmChat.txtChatAll.Text)
End Sub
- Para enviar texto al cliente. (Por ejemplo al escribir algo en el segundo textbox y pulsar "Enviar")
Private Sub cmdEnviar_Click()
Dim txtData As String
If Trim(txtSendChat.Text) = vbNullString Then Exit Sub
txtData = txtSendChat.Text
txtChatAll.Text = txtChatAll.Text & txtSendChat.Text & vbCrLf
sockChat.SendData txtData
txtChatAll.SelStart = Len(txtChatAll.Text)
txtSendChat.Text = ""
txtSendChat.SetFocus
End Sub
Sabiendo ésto, no te debería ser dificil hacer también el cliente.