Chat en Visual Basic

SeiYa

Tengo pensado hacer un proyecto de este curso y hacer un chat en Visual Basic.

La idea sería más bien hacer un sevidor por una parte y por otra los clientes que se conectasen al servidor y bueno ya ahí buscarnos la vida para mandar información de cliente a servidor y después a cliente o viceversa.

No tiene por que ser óptimo 100% más que nada que funcione no se si me entendéis.

El problema que tengo es que no he trabajado nunca en algo así y me gustaría saber como transmitir información de un programa en VisualBasic a otro programa escrito también en VB con la única información de la IP, nombre del programa en cuestión etcétera...

Un saludo y gracias ;)

PIN-HEAD

Deberías hacerlo en java y por conexión directa. Es como yo lo hice y funcionaba bien. Eso sí, lento de cojones, como todo lo que se hace en java.

SALU2

ZurIchK

yo hice hace años... algo parecido.. tipo clientes->servidor...

lo tengo por ahi voy a buskarlo... pero ya no recuerdo como ib.a. y no te puedo copiar el codigo ke no tengo el vb instalado... si kieres te paso los archivos en un zip

EDITADO:

Mira a ver si te deja bajarlo de ahi.. es alo muy simple.. si no recuerdo.. mal.. tenia mas ejemplos...

hace 2 o3 años ke lo hice y no recuerdo cual era cual xD

http://zurich.zapto.org/descargas/chat.zip

sigo buskando aver si hay algo mas

ueno he encontrao unos ejemplillos mas.. por udp.. cliente-servidor.. muticlientes... son cosas muy simples.. simplemente a ver si te sirve para ver el funcionamiento.. suerte

http://zurich.zapto.org/descargas/cliente-servidor.zip

SeiYa

Gracias lo miraré en cuanto pueda ;) ya les he descargado.

La asignatura es de Visual Basic, y veo que el 90% va a hacer bases de datos (gestión de un videoclub) y yo tenía pensado hacer algo diferente, la idea era un servidor, que gestionse por así decirlo, el envío de mensajes de un cliente a otro y además gestionase los canales del chat existentes...

La verdad, es que el primer problema que tengo sería a partir de un programa que pulse un botón y en otro programa se muestre un texto, si resuelvo eso (que es lo difícil) pues el resto es bastante sencillo ya que se basaría en el envío de o bien información o bien código entre aplicaciones...

Gracias por todo, le echaré un ojo y te comentaré ;) por lo que he visto por encima creo que me servirá pero te lo aseguraré esta noche.

A

hacer un chat en java manda huevos.

No se a quien le gustara java pero vamos es mas lento que su puta madre, y eso en un simple chat!!!

Mi consejo .net y si quieres algo mas "complejo" c++

SeiYa

Que la asignatura es de Visual Basic!! xD

A

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:

  • Para cerrar el chat

Public Sub sockChat_Close()

sockChat.Close
sockChat.Listen
Unload frmChat

End Sub

  • Para abrirlo

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.

kas

Si vas a usar VisualBasic entra directamente a VisualStudio .NET 2005 y .NET Framework 2.0. Olvidate de VB 6.0. OLVIDATE.

Podras usar programacion orientada a objetos (OOP) y todo tu codigo sera mucho mas logico, distribuido en clases.

El tema de conexion, hay muchos ejemplos para .NET 1.1 totalmente aplicables a 2.0.

En cuanto a C++, tendras que programar muchisimo mas, te tendras que montar tus tipos y francamente no creo que valga la pena si no tienes que optimizar nada. Es mas, puedes usar C# (C++ para .NET).

SeiYa

Que la asignatura es de VisualBasic 6.0 no .Net así que nada XD

De todos modos, con lo que me pasó ZurIchK me bastó para aprender el funcionamiento del Winsock y ya lo probé en 3 ordenadores y todo perfecto sin problemas ;)

Gracias y un saludo.

ZurIchK

:) voy a tener k mirarmelo yo tb xDD.. ke ya ni me acuerdo... :p

kas

Pues dile a tu profe que .NET lleva ya 5 años, y que a ver si en Windows Vista continuara con vb6 y haciendo las dll's en C++.

Que lol de profes xD

A

Seiya no se donde estudiaras pero vamos debe ser una puta mierda.

Dar VB 6.0 es de mancos!!!!! si no quieres lenguaje a oop que den c, pero si dan vb q den .net!!!!

En fin sin comentarios

A

Aule, creo que no deberías juzgar a un profesor por eso tan a la ligera. Visual Basic puede haber dejado de usarse en la vida real, o Qbasic, o GWBasic o muchos otros lenguajes, pero como métodos de aprendizaje siguen teniendo una gran validez.

SeiYa

A ver, es una asignatura de Visual Basic, no solo damos eso eh XD damos y hemos dado, Java, C, C++, C#, ensamblador, dlx, asp XD hasta javascript XD y queda mucho todavía ;)

A

Venga si tienes una asignatura que de mil lenguajes de programcion no....

Si es asi es que donde estudias es una puta mierda. Habeis visto programacion estructurado y objetos y ves vb 6.0 Que me cuentas!!!!!!!!

Si tu asignatura es asi es uina puta mierda de asignatura, xq te quedas a medias en cualquier lenguaje. si vale sabes pseudocodigo pero no puedes profundizar en una asignatura anual en tropecientosmil lenguajes.

Deja de mentir

PD: es una asignatura de vb 6.0 y habeis dado de todo no....

SeiYa

No tengo una asignatura de 1000 lenguajes, tengo 1000 asignaturas de 1 lenguaje y creéme que profundizamos en todos.

De todos modos no tengo nada que demostrar a alguien que solo sabe descalificar para creerse alguien en unos foros ;)

Un saludo y cierren el tema por favor.

Soltrac

Es un modulo no?

yo siempre he pensao q estudiar 329032903 lenguajes es una gilipollez.

Yo tarde 1 semana en aprender visual basic y 2 semanas en aprender .NET teniendo la base teorica de PPO y de PE y sabiendo C y C++.

ASP .NET dure 1 dia y estoy seguro de si intentara JAVA o ASP duraria practicamente lo mismo.

En fin, la teoria es super aburrida, pero yo creo que vale la pena para cuando te enfrentas a la vida real.

Con respecto al tema, creo q en lawebdelprogramador.com habia mas de 1 ejemplo de conexiones cliente servidor en VB, vamos, q era muy sencillo

SeiYa

No, es un título de grado, de 4 años, estudio a través de la Universidad de Gales, y bueno, además de todo eso damos teoría tanto de esos lenguajes como de programación en general.

Sobre el tema XD está más o menso resuelto, gracias a todos por responder para ayudar y del resto no digo nada :P

Un saludo ;)

Soltrac

Enga #18, si tienes alguna duda posteala, a ver si podemos ayudarte a sacar el sobresaliente :P

Usuarios habituales

  • Soltrac
  • SeiYa
  • Aule
  • Archville
  • kas
  • ZurIchK
  • PIN-HEAD