Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Donacion: Proyecto de un Chat (bien Coqueto)

Estas en el tema de Donacion: Proyecto de un Chat (bien Coqueto) en el foro de Visual Basic clásico en Foros del Web. Hola dejo aquí un proyecto de un Chat para 2 personas, utiliza winsock.ocx y esta bastante completito, tiene opciones tales como • Transmitir webcam • ...

  #1 (permalink)  
Antiguo 16/01/2006, 22:57
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Donacion: Proyecto de un Chat (bien Coqueto)

Hola dejo aquí un proyecto de un Chat para 2 personas, utiliza winsock.ocx y esta bastante completito, tiene opciones tales como
• Transmitir webcam
• Transmitir Audio
• Transmitir Archivos
• Transmitir imágenes (vista previa de quienes chatean)
• Texto Enriquecido
• Transmitir un “objeto”, como pueda ser un trozo de una pagina de Excel, Word, video clips u otro objeto que pueda ser insertado en un Richtextbox
• Emoticons
• Personalizar la pantalla
• Zumbido

También toda acción es graficada en el mismo texto al estilo MSN Messenger

Su funcionamiento es censillo (para probar) ejecutan la aplicación dos beses en una ponen su NICK y la IP (sale por defecto la de la PC que ejecuta la aplicación) y le aprietan el botón “Poner a la escucha”,
y en la otra ponen también el NICK y la IP de la maquina que quiere conectar (en este caso la nuestra ósea que por defecto ya esta puesta) y luego le dan en el botón “Conectar”


Si bien no lo e terminado a gusto (como todo lo que ago) pienso que esta muy bueno
El zip me quedo algo pesado por el tema de los graficos (695 k) pero creo que vale la pena verlo

El link para descargarlo:

http://ar.geocities.com/leandroascierto/Chat.zip

Bueno cualquier sugerencia o pregunta es bienvenida

Saludos
  #2 (permalink)  
Antiguo 17/01/2006, 00:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
hay por dios.. la ortografia!!!!
__________________
Buby Systems
  #3 (permalink)  
Antiguo 17/01/2006, 10:02
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 10 meses
Puntos: 0
Si lo hiciste vos felicitaciones, está muy bueno. Abría que hacer que cuando se genera una petición de conección al server se cree un socket nuevo, así se podrian conectar mas de dos personas.

Salu2!
__________________
diegoz.com.ar
  #4 (permalink)  
Antiguo 17/01/2006, 18:27
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Cita:
Iniciado por bubilo
hay por dios.. la ortografia!!!!
Si en verdad tienes toda la razón mi ortografía es desastrosa y espero poder corregirla algún día

Vale aclarar el que en el post tanto de arriba como en este utilice la auto corrección de Word sino hubiera sido imposible leerlo jejej

Saludos desde Argentina a otro paisano
  #5 (permalink)  
Antiguo 17/01/2006, 18:41
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Cita:
Iniciado por Frehley
Si lo hiciste vos felicitaciones, está muy bueno. Abría que hacer que cuando se genera una petición de conección al server se cree un socket nuevo, así se podrian conectar mas de dos personas.

Salu2!
Si estuve pensando en ello pero ya se complicaría al doble y la verdad ya me arte un poco, cuando descanse un poco de este proyecto voy a intentar hacer una conexión múltiple, claro lo bueno seria poder disponer de un servidor fijo las 24 horas y hacer algo así como un verdadero MSN, pero ya hace falta mas experiencia para ello
Por casualidad tu sabes como trabaja el MSN Messenger o el Yahoo , trabajan con una conexión por IP?, yo mire todo los puertos abiertos en mi PC pero al parecer ninguno de estos programas utiliza alguno de esos puertos y la verdad no se como carajo se conectan

Saludos
  #6 (permalink)  
Antiguo 17/01/2006, 21:18
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 10 meses
Puntos: 0
Hace un tiempo conseguí un código fuente de un cliente MSN, si mal no recuerdo se conectaba por un IP a un servidor (no recuerdo cual), fijate en google que debe estar dando vueltas todavia. Incluso se conectaba al servidor de MSN original, de tal forma que cuando entraba con mi cuenta me cargaba automaticamente todos mis contacos y me devolvía todas las variables que tengo guardadas en mi cuenta como el nick.

Salu2!
__________________
diegoz.com.ar
  #7 (permalink)  
Antiguo 17/01/2006, 21:27
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Cita:
hay por dios.. la ortografia!!!!
Supongo que fue una ironía...

¡Ay! Por Dios... ¡La ortografía!
  #8 (permalink)  
Antiguo 18/01/2006, 11:59
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
muy bueno lea ejej che no te encontre masen el msn .. ke fue del explorador remoto che ?
+
salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #9 (permalink)  
Antiguo 18/01/2006, 13:13
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Si alguna alma piadosa me lo manda se lo agradeseria, ya que no se porque Cara.. no lo puedo bajar.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #10 (permalink)  
Antiguo 19/01/2006, 02:23
Avatar de hmtech  
Fecha de Ingreso: agosto-2003
Ubicación: Puerto Rico
Mensajes: 332
Antigüedad: 20 años, 8 meses
Puntos: 0
hola:

yo hize un codigo de un servidor mulltiuser con unos arrays al winsock, le faltan algunas cosas pero la conexion funciona perfecta acepta peticiones de todos los usuarios que deseen conectarse, si quieren me mandan el email para compartirlo funciona muy bien.

email - [email protected]

saludos
hmtech
__________________
"...todos los días hay que luchar por que ese amor a la humanidad viviente se transforme en hechos concretos, en actos que sirvan de ejemplo, de movilización."
Che Guevara
  #11 (permalink)  
Antiguo 21/01/2006, 20:15
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Buen ejemplo LeandroA, de hecho ya lo coloqué en las faq´s

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #12 (permalink)  
Antiguo 24/01/2006, 13:50
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
El servidor Multi user esta original. Solo me falta el chat de LeandroA que no se porque no lo puedo bajar desde mi pc. ase falta que el que lo tenga me lo mande a mi correo [email protected] para aserlo funcionar sin usar el Winsock.ocx y ponerlo en una web para que lo puedan bajar.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #13 (permalink)  
Antiguo 24/01/2006, 14:09
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
El servidor Multi user esta original. Solo me falta el chat de LeandroA que no se porque no lo puedo bajar desde mi pc. ase falta que el que lo tenga me lo mande a mi correo [email protected] para aserlo funcionar sin usar el Winsock.ocx y ponerlo en una web para que lo puedan bajar.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #14 (permalink)  
Antiguo 24/01/2006, 15:14
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Cita:
Iniciado por VisualGuallabo
El servidor Multi user esta original. Solo me falta el chat de LeandroA que no se porque no lo puedo bajar desde mi pc. ase falta que el que lo tenga me lo mande a mi correo [email protected] para aserlo funcionar sin usar el Winsock.ocx y ponerlo en una web para que lo puedan bajar.

Hola hay te lo mande tambien te escrivi algo porque me interesaria hacerte algunas preguntas sobre las apis del wsock32
  #15 (permalink)  
Antiguo 25/01/2006, 07:14
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Socio en cuanto a las apis de wsock32 yo lo que uso es un modulo de clase y un modulo que baje de internet donde estan todas las funciones y propiedades del Winsock. aunque le he tenido que aser algunos arreglos para que me permita la conexion multiple y algunos errores que me daba en muchos casos. esta en esta web http://www.vbip.com/winsock-api/csoc...t-class-01.asp

http://www.vbip.com/winsock-api/csoc...ket-1.0.12.zip
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz

Última edición por VisualGuallabo; 25/01/2006 a las 07:58
  #16 (permalink)  
Antiguo 25/01/2006, 10:04
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 4 meses
Puntos: 0
La ortografía es lo "malo", lo demás está excelente. El diseño, las imágenes y todo está de "poca madre" (excelente, genial, espectacular, fantástico... ). Ahorita te corrijo lo de la ortografía y te lo mando.

Suerte.
-------------------------------------------------------------------------------------------
Ups, no puedo compilar, me da errores de variables y procedimientos no definidos.

Última edición por X.Cyclop; 25/01/2006 a las 10:23
  #17 (permalink)  
Antiguo 25/01/2006, 10:42
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
El problema de la clase es que no debuelbe el IPLOCAL
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #18 (permalink)  
Antiguo 07/03/2006, 07:46
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
Cita:
lo bueno seria poder disponer de un servidor fijo las 24 horas y hacer algo así como un verdadero MSN
Estoy totalmente de acuerdo, pero porqué en lugar de hacerlo por IP o como sea que funcione el MSN, no hacerlo guardando la información de usuarios en una base de datos MySQL en un servidor web y comunicarse vía páginas PHP con distintos comandos a través de POST para lograr la misma funcionalidad

Si se hiciera así se podría hacer hasta utilizando algún servidor gratuito que permita utilizar PHP y MySQL. De esta forma se podría tener un registro de usuarios con lista de contactos para cada uno y poder ver quien se conecta y desconecta

  #19 (permalink)  
Antiguo 07/03/2006, 08:55
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por kalijunfan
Estoy totalmente de acuerdo, pero porqué en lugar de hacerlo por IP o como sea que funcione el MSN, no hacerlo guardando la información de usuarios en una base de datos MySQL en un servidor web y comunicarse vía páginas PHP con distintos comandos a través de POST para lograr la misma funcionalidad

Si se hiciera así se podría hacer hasta utilizando algún servidor gratuito que permita utilizar PHP y MySQL. De esta forma se podría tener un registro de usuarios con lista de contactos para cada uno y poder ver quien se conecta y desconecta

¿Y cuál es la pega de hacerlo con Visual Basic o cualquier otro lenguaje de escritorio (no web)?

Dices que "De esta forma se podría tener un registro de usuarios con lista de contactos para cada uno y poder ver quien se conecta y desconecta." No veo el problema de hacer eso en VB (u otro lenguaje). De hecho, MSN te controla cuando sales y cuando entras...
  #20 (permalink)  
Antiguo 07/03/2006, 09:29
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
pues muy simple, la pega es usar TU propio servidor y TU propio protocolo.
no se a vos pero a mí y a muuuchos usuarios que conozco les pasa lo mismo, en reiteradas oportunidades el servidor del msn está caído y no te conecta. además a microsoft de tanto en tanto se le da por cambiar todo y obligarte a actualizar a nuevas versiones de su software, el msn y su protocolo incluídos, eso quiere decir que cada vez que a microsoft se le ocurra cambiar el protocolo del msn vos vas a tener que modificar tu software.
al usar tu propio servidor podés implementar TU propio protocolo y VOS decidís cuando y cómo lo cambiás, si es que algún día se te da por cambiarlo.
además de que podés implementar un mensajero instantáneo corporativo, familiar, privado o como se te ocurra, que puedas utilizar dentro de una empresa o donde quieras, mucho más liviano, sin todas las porquerías del msn que te lo hacen pesado innecesariamente o con las características que VOS quieras, sean cuales sean.
con ese criterio nadie haría otro tipo de mensajero instantáneo y usaríamos todos en todo el mundo el msn

  #21 (permalink)  
Antiguo 07/03/2006, 14:32
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por kalijunfan
pues muy simple, la pega es usar TU propio servidor y TU propio protocolo.
no se a vos pero a mí y a muuuchos usuarios que conozco les pasa lo mismo, en reiteradas oportunidades el servidor del msn está caído y no te conecta. además a microsoft de tanto en tanto se le da por cambiar todo y obligarte a actualizar a nuevas versiones de su software, el msn y su protocolo incluídos, eso quiere decir que cada vez que a microsoft se le ocurra cambiar el protocolo del msn vos vas a tener que modificar tu software.
al usar tu propio servidor podés implementar TU propio protocolo y VOS decidís cuando y cómo lo cambiás, si es que algún día se te da por cambiarlo.
además de que podés implementar un mensajero instantáneo corporativo, familiar, privado o como se te ocurra, que puedas utilizar dentro de una empresa o donde quieras, mucho más liviano, sin todas las porquerías del msn que te lo hacen pesado innecesariamente o con las características que VOS quieras, sean cuales sean.
con ese criterio nadie haría otro tipo de mensajero instantáneo y usaríamos todos en todo el mundo el msn

Sigo sin entender lo que dices. Reitero: ¿Qué problema hay en usar NUESTRO servidor con NUESTRO protocolo?

Explícate mejor... Lo del MSN lo sé, pero así se hacen todos los programas... Con protocolos. En cualquier caso, las conclusiones no sé a qué cuento vienen. No me he enterado XD
  #22 (permalink)  
Antiguo 08/03/2006, 17:43
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
si, veo que no entendés lo que quiero decir, ya que justamente estoy diciendo que deberíamos usar nuestro propio servidor y no el de msn.

ok, vamos a ver si me explico un poco mejor.
esto es un chat uno a uno cierto? bien al estilo del msn, icq y demás.
ahora, de momento este chat se conecta directamente por ip, uno funcionando como servidor y el otro por cliente.
entonces lo que le está haciendo falta es justamente la funcionalidad que tienen los mensajeros instantáneos, o sea usar un servidor central que guarde la información de todos los usuarios, el estado de cada uno, las listas de contactos, etc.

para eso tenemos dos opciones, crear el software servidor en visual basic e instalarlo indefectiblemente en un servidor windows, o en su defecto hacerlo en un lenguaje de programación web (como puede ser php por ejemplo) e instalarlo en cualquier servidor web linux.

si propongo hacerlo en php y mysql es justamente para poder instalar el software servidor en cualquier servidor web linux lo cual nos va a salir considerablemente más barato que instalar el software en un servidor windows. nada más que por eso.

esto teniendo en cuenta que se quiera "ampliar" este software hasta hacerlo del estilo de los grandes (léase msn, icq, etc.), sinó no hay necesidad de hacer nada más ya que el chat está bastante bien como está.

si estoy hablando de esto es porque LeandroA en su mensaje del 17/01/06 dijo lo siguiente:
Cita:
claro lo bueno seria poder disponer de un servidor fijo las 24 horas y hacer algo así como un verdadero MSN
espero que ahora entiendas mejor lo que quise decir.

  #23 (permalink)  
Antiguo 08/03/2006, 19:43
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Bien, está aclarado: GNU/Linux + PHP + MySQL.

Pero vuelvo a repetir, ¿por qué no GNU/Linux + C + MySQL? O cualquier otro lenguaje: C++, Perl, C#, Python, Ruby... Y siguen siendo portables entre Windows/Linux/Mac.

En cualquier caso PHP es un script y por tanto muy lento para esta clase de servidores, a mi parecer.
  #24 (permalink)  
Antiguo 27/03/2006, 07:17
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
porqué no C, C++, Python o el que quieras de los lenguajes compilados? pues muy simple, salvo que tengas vos mismo tu propio servidor, o que el servidor que tengas contratado te permita instalar programas compilados o directamente compilar tus propios programas, lo que no es muy común en la mayoría de los servidores y menos cuando se trata de programas de chat, entonces no vas a tener más remedio que utilizar un lenguaje de script.

tené en cuenta que actualmente practicamente cualquier servidor te permite utilizar php, incluso muchos de los gratuitos, pero muy pocos te permiten instalar programas compilados.

y la verdad que no estoy para nada de acuerdo contigo en que php sea muy lento para esto, acordate que lo único que tenemos que manejar es la lista de contactos y sus estados. lo único que tendría que hacer el script php sería devolver una simple cadena de texto con esa información y luego nosotros la manipularíamos con visual basic, para eso php no es para nada lento.

fijate que personalmente he conocido gente que ha llegado a tener hasta más de 300 contactos en el msn, lo cual por lo general es la excepción que confirma la regla, la mayoría de los usuarios no tiene tantos contactos, pero de todas formas vamos a usar esa cifra.

lo único que devolvería el script sería algo como esto:

[email protected] ON|[email protected] OFF|[email protected] AWAY......

y todo así para todos los usuarios. si te fijás cada usuario ocupa unos 30 caracteres de texto aproximadamente (divididos en usuario estado) lo que haría que para 300 contactos sería unos 9000 caracteres más o menos (menos de 10Kb), todas cifras aproximadas obviamente.
y eso usando la dirección de email para identificar a cada usuario, sería muchísimo menos aún si usáramos simplemente un id autonumérico para eso lo que sería solamente unos 10 caracteres para cada usuario si tuviéramos miles de usuarios de nuestro chat, lo que sería unos 3Kb de info para 300 usuarios. ahora yo te pregunto, cuánto puede demorar php en devolver esa lista?
y eso sin usar ningún tipo de compresión, que perfectamente podríamos implementar algún sistema de compresión para que la info que tenemos que devolver sea aún más chica. y no te olvides que estamos usando una lista de 300 contactos, obviamente sería aún muchísimo menos si usamos una lista un poco más normal de unos 30 o 50 contactos.

personalmente no creo que php sea lento para devolvernos esa info.

ahora si me decís que tenés tu propio servidor y que podés utilizar todo lo que se te antoje, entonces no lo pensaría dos veces, obviamente programaría el código del servidor en C++, no lo pienso dos veces
pero si solamente cuento con un servidor gratuito o alguno que pague unos poquitos euros por mes y no pueda usar otra cosa que lenguajes de script, entonces sí lo hago en php.

espero que entiendas ahora el porqué de php y mysql, que no tiene porqué correr necesariamente en GNU/Linux, puede ser en windows también, aunque en ese caso recomiendo asp y sql server, si es que lo podés usar en el servidor, sinó te vas a tener que conformar con asp y access.

o sea, todo depende de lo que puedas hacer con el servidor que cuentes. creo que queda claro ahora no?

  #25 (permalink)  
Antiguo 27/03/2006, 08:00
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por kalijunfan
porqué no C, C++, Python o el que quieras de los lenguajes compilados? pues muy simple, salvo que tengas vos mismo tu propio servidor, o que el servidor que tengas contratado te permita instalar programas compilados o directamente compilar tus propios programas, lo que no es muy común en la mayoría de los servidores y menos cuando se trata de programas de chat, entonces no vas a tener más remedio que utilizar un lenguaje de script.
Perl, Python, Ruby y demás no son compilados, son scripts como PHP ;)

Lo que dices es muy cierto, pero creí que estábamos hablando de tener nuestro propio servidor, es decir, tenerle físicamente, no contratado en algún lugar remoto. De ahí ha surgido el malentendido.

Cita:
Iniciado por kalijunfan
tené en cuenta que actualmente practicamente cualquier servidor te permite utilizar php, incluso muchos de los gratuitos, pero muy pocos te permiten instalar programas compilados.
Cierto, como repito, he malinterpretado lo que querías decir con "servidor".

Cita:
Iniciado por kalijunfan
y la verdad que no estoy para nada de acuerdo contigo en que php sea muy lento para esto, acordate que lo único que tenemos que manejar es la lista de contactos y sus estados. lo único que tendría que hacer el script php sería devolver una simple cadena de texto con esa información y luego nosotros la manipularíamos con visual basic, para eso php no es para nada lento.
Bueno, no para servidores pequeños o de muestra. Pero los (varios) servidores MSN no usan ningún script.

Cita:
Iniciado por kalijunfan
fijate que personalmente he conocido gente que ha llegado a tener hasta más de 300 contactos en el msn, lo cual por lo general es la excepción que confirma la regla, la mayoría de los usuarios no tiene tantos contactos, pero de todas formas vamos a usar esa cifra.
El problema no son los contactos de 1, sino los contactos de todos a la vez. Mantener tales relaciones, estados de conexión, pings, comprobaciones, envío de archivos, conversaciones... requiere mucho trabajo de servidor, y codificación complicada para las autorizaciones e identificaciones (el protocolo que usa MSN6 para identificarte como usuario es un auténtico rollo de operaciones, conexiones y reconexiones).

Cita:
Iniciado por kalijunfan
lo único que devolvería el script sería algo como esto:

[email protected] ON|[email protected] OFF|[email protected] AWAY......

y todo así para todos los usuarios. si te fijás cada usuario ocupa unos 30 caracteres de texto aproximadamente (divididos en usuario estado) lo que haría que para 300 contactos sería unos 9000 caracteres más o menos (menos de 10Kb), todas cifras aproximadas obviamente.
y eso usando la dirección de email para identificar a cada usuario, sería muchísimo menos aún si usáramos simplemente un id autonumérico para eso lo que sería solamente unos 10 caracteres para cada usuario si tuviéramos miles de usuarios de nuestro chat, lo que sería unos 3Kb de info para 300 usuarios. ahora yo te pregunto, cuánto puede demorar php en devolver esa lista?
y eso sin usar ningún tipo de compresión, que perfectamente podríamos implementar algún sistema de compresión para que la info que tenemos que devolver sea aún más chica. y no te olvides que estamos usando una lista de 300 contactos, obviamente sería aún muchísimo menos si usamos una lista un poco más normal de unos 30 o 50 contactos.
Como te dije antes, el problema es que PHP tendría que manejar miles de personas a la vez (si es un chat pequeño). 1000 personas podrían manejarse con PHP, pero a lo mejor 10 millones que ahora mismo estén conectados al MSN... Creo que no.

El problema, no es la cantidad de datos a enviar/recibir (10Kb no es nada), sino el procesamiento.

Cita:
Iniciado por kalijunfan
ahora si me decís que tenés tu propio servidor y que podés utilizar todo lo que se te antoje, entonces no lo pensaría dos veces, obviamente programaría el código del servidor en C++, no lo pienso dos veces
pero si solamente cuento con un servidor gratuito o alguno que pague unos poquitos euros por mes y no pueda usar otra cosa que lenguajes de script, entonces sí lo hago en php.
Para un pequeño chat, por supuesto.

Cita:
Iniciado por kalijunfan
espero que entiendas ahora el porqué de php y mysql, que no tiene porqué correr necesariamente en GNU/Linux, puede ser en windows también, aunque en ese caso recomiendo asp y sql server, si es que lo podés usar en el servidor, sinó te vas a tener que conformar con asp y access.
Hombre, yo recomendaría GNU/Linux... Más bien, OpenBSD.

Windows no tiene mucho que hacer en cuestión de servidores, salvo que te pongan un Windows 2003 Server (o al menos Windows 2000 Server), lo cual (creo) le cuesta más a la empresa de hosting simplemente por las licencias.
  #26 (permalink)  
Antiguo 27/03/2006, 08:47
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
Cita:
10 millones
pues acá se termina la discusión sobre lengüaje de programación del servidor :)

para manejar esta cantidad de usuarios no tenés otra opción que tener un servidor dedicado, sea en tu propia casa o contratado pero es la única opción, y en ese caso creo que todos estamos de acuerdo en que el lengüaje más potente de programación que podés usar es C++

ahora con respecto al protocolo se le puede sacar bastante trabajo al servidor. vos mencionás envío de archivos y conversaciones, eso se puede hacer directamente de usuario a usuario sin necesidad de usar el servidor para eso. y en cuanto a autorizaciones e identificaciones, pues a eso me refiero con usar nuestro propio protocolo. creo que ese siempre es el problema con los programas del guille puertas, se complican la cabeza innecesariamente.

o sea, vamos a resumir la idea. si yo fuera a hacer un chat al estilo msn lo que haría sería lo siguiente:

1. un form principal que pida la información de usuario para conectarse, con las opciones de recordar los datos y de registrar una cuenta nueva si no es usuario del servicio.

2. en una base de datos en el servidor guardo la información del usuario junto con su ip actual y su estado actual.

3. una vez que el usuario se registró y se conectó al servicio muestro la ventana principal del programa con una lista de sus contactos autorizados obteniéndolos de una base de datos del servidor evidentemente. y si tiene usuarios sin autorizar le pido autorización para cada uno de ellos. para mostrar la lista de contactos obtengo, la primera vez que cargo el form, una lista extendida con los nombres de usuario a mostrar con sus respectivos id autonuméricos de la base de datos y su estado inicial. luego periódicamente verifico el estado de todos mis contactos usando solamente su id para consultar al servidor. en ese mismo form iría un control winsock que haría la función de "servidor local" por así decirlo verificando si hay alguien queriendo charlar con nosotros.

4. si alguien quiere charlar con nosotros abro una ventana de chat, mostrando los datos de quien está chateando conmigo que los obtuve de la base de datos del servidor usando su dirección ip. en esa ventana de chat pondría dos controles winsock uno para envío y otro para recepción obviamente y la conversación la haría directa entre los dos usuarios, igual que el envío de archivos, sin necesidad de usar el servidor para ello.

5. si yo quiero charlar con alguien hago un doble click en el usuario de mi lista de contactos, con su id obtengo la ip actual de la base de datos del servidor y abro una ventana de chat usando esa ip la cual me va a permitir establecer una conexión directa con el otro usuario y así sacandole trabajo al servidor para las conversaciones y envío de archivos.

básicamente esa es la idea, bastante resumida, no sé a vos que te parece.
  #27 (permalink)  
Antiguo 27/03/2006, 09:13
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Está bien planteada, pero no sería viable.

La razón es sencilla: No se pueden establecer conversaciones de IP a IP "directas".

Es decir, eso requiere que uno de los usuarios sea el servidor, y otro el cliente. El problema viene con que sea alguien el "servidor".

Plantea varios problemas:
1. Inseguridad para el que le toca el rol de servidor.
2. ¿Cómo explicas a la gente "de a pie" que abra sus firewall, sus routers y sus NATs en otros ordenadores para permitir conexiones entrantes?
3. Desconfianza del software.
4. Lentitud en algunos casos. Es mejor contactar con un servidor cercano, que tenga mejor conexión con ambos usuarios, que los dos interactúen por sí solos. Aunque la verdad, esto da igual, no se envía información como para que represente un problema.
5. Microsoft no podría controlar el tráfico de mensajes y su plan para controlar el mundo no triunfaría. xD

Por lo demás tu planteamiento es muy interesante, aunque GMail ya se te ha adelantado. Si abres tu cuenta GMail, han implementado en la propia página web un sistema de chats.
  #28 (permalink)  
Antiguo 27/03/2006, 09:28
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
si cierto, en eso de la configuración y la inseguridad tenés razón, pero bueno, si quisiéramos un software perfecto no estaríamos usando windows no?
pero realmente el punto que más me preocupa es el 5, cómo vamos a impedirle a microsoft controlar el mundo??? qué desconsiderados que somos!!!!

pero con lo que me perdiste es con el chat de Gmail, tengo una de mis cuentas de Gmail abierta y no veo nada de ningún chat, te referís al Google Talk?
  #29 (permalink)  
Antiguo 27/03/2006, 09:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Iniciado por kalijunfan
tengo una de mis cuentas de Gmail abierta y no veo nada de ningún chat, te referís al Google Talk?
Esa opcion la tienes de tu lado izquierdo abajo donde tienes tus contactos, no es necesario el google talk, con que tengas abierto tu email es mas que suficiente para poder estar online con otros usuarios.

SAludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #30 (permalink)  
Antiguo 27/03/2006, 09:39
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
aaaa, con razón no la veo, todos mis contactos están desconectados, supongo que debe ser por eso que no la veo.

gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:13.