elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  [Ayuda][C++]Como hacer un chat en linux.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda][C++]Como hacer un chat en linux.  (Leído 4,382 veces)
Freeze.


Desconectado Desconectado

Mensajes: 2.731



Ver Perfil WWW
[Ayuda][C++]Como hacer un chat en linux.
« en: 30 Marzo 2009, 01:42 »

Hola, hoy vine a pedir ayuda sobre como hacer un chat en linux.
Quisiera una explicación más grafica(textual) que de codigo ya que lo más dificil de la programación es la logica
Y pues no he tenido mucha lógica para este proyecto ya que es el primer proyecto en c++. con GTK, sockets y linux. (Primerizo en los 3 ultimos)

Los problemas que tengo es que mientras recibo la interfaz se cuelga.. y si no recibo pues entonces no es chat :xD
El server siempre recibe y entonces la interfaz nunca termina de cargar.


En línea

Foxy Rider


Desconectado Desconectado

Mensajes: 2.406


Deprecated


Ver Perfil WWW
Re: [Ayuda][C++]Como hacer un chat en linux.
« Respuesta #1 en: 30 Marzo 2009, 02:31 »

Tenés la opción del bloqueo : http://www.arrakis.es/~dmrq/beej/advanced.html
Threads : http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html

pero, yo noto el approach del bloqueo un poco más apropiado .....
ya que incorporás todo en el mismo bucle del programa y no te liás con threads si es que no lo viste al tema ^^

Fijate este artículo : http://www.codeproject.com/KB/IP/ScalableClientServer.aspx
cualquier cosita, traete todas las dudas específicas que tengas =P

Alex~


« Última modificación: 30 Marzo 2009, 02:33 por The Queen Of Ice » En línea

Freeze.


Desconectado Desconectado

Mensajes: 2.731



Ver Perfil WWW
Re: [Ayuda][C++]Como hacer un chat en linux.
« Respuesta #2 en: 30 Marzo 2009, 03:14 »

Bueno, realmente intenté implementar eso pero me fue "imposible" mejor te dejo el proyecto completo y no te asustes por la cantidad de archivos.. ya sabes esto IDE de ahora estan como loquitos :xD
Los revisas si no te molesta, gracias ;)
http://www.mediafire.com/?sharekey=09a1e707309f19ba90a82c7bb0fad7ada6e7cb4f5a622565c95965eaa7bc68bc
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.380


M.S.I Angel Cantu


Ver Perfil WWW
Re: [Ayuda][C++]Como hacer un chat en linux.
« Respuesta #3 en: 1 Abril 2009, 17:35 »

Bueno, realmente intenté implementar eso pero me fue "imposible" mejor te dejo el proyecto completo y no te asustes por la cantidad de archivos.. ya sabes esto IDE de ahora estan como loquitos :xD
Los revisas si no te molesta, gracias ;)
http://www.mediafire.com/?sharekey=09a1e707309f19ba90a82c7bb0fad7ada6e7cb4f5a622565c95965eaa7bc68bc

Como lo hiciste ??? Que opcion potaste de las 2 que te dio The Queen Of Ice .

De paso te explico que, para hacer un chat no necesitas tanto la explicacion logica (bueno, no del todo), ya que esto varia seguir las necesidades de tu chat, por ejemplo:

Usando SELECT
Select es una funcion que te permite estar al tanto de varios descriptores de archivos (ne ste caso: sockets), de modo que, cuando invocas SELECT() la funcion queda dormida hasta que un usuario envia algo hacia el socket, cuando SELECT se percata que llego algo al socket, la funcion despierta y se ejecuta el codigo que sigue debajo de la funcion select, es por eso que en el ejemplo del tutorial de Beej (enlace), la funcion select que posiciona dentro de un ciclo infinito (for(;;)). La clave para que entiendas el uso de SELECT(), esta en que asimiles como funciona SELECT y que significa cada opcion del mismo (FD_SET, etc, etc...).

Usando Hilos, Procesos, Exlusion Mutua (mutex).
Esta manera es las mas avanzada, pero en lo personal, la mas facil, comoda y con muchas ventajas :D, el precio de esto es que el usuario interesado debe estudiar, conocer y asimilar el uso de Procesos, Hilos, Mutex, por lo tanto equivaldria a aprender sobre tres temas, que si bien, se aventura a ello, traeria muy buenas ventajas en su desarrollo de codigos :D. Practicamente la secuencia de un chat con estas modalidades seria asi:

1- Creas un ciclo infinito ( while(1) ), invocando accept() (reciviendo clientes).
2- Cuando un cliente se conecte, le creas un procesos para dicho socket.
3- Cuando se haya creado el proceso, creas 2 hilos.
4- Hilo 1, para envio de datos.
5- Hilo 2, pra recepcion de datos.
6- Entre la opcion 1 y 2, creas inicializas el Mutex.

OJO: estas opciones que yo te doy varian segun el gusto y costumbres de cada programador.
En línea

MessageBoxA

Desconectado Desconectado

Mensajes: 217


ayudame a ayudarte


Ver Perfil WWW
Re: [Ayuda][C++]Como hacer un chat en linux.
« Respuesta #4 en: 1 Abril 2009, 17:55 »

creo q con esto ya te hice todo el trabajo :rolleyes: :rolleyes: :rolleyes:

http://www.mediafire.com/?sharekey=c44de70e1d3bc48ee7c82ed4b8f0c380e04e75f6e8ebb871
En línea

http://www.kernel.org

borren los post viejos y punto.
SI LA MATRIX FUERA PERFECTA.... ESTUVIERA ESCRITA EN C++
Freeze.


Desconectado Desconectado

Mensajes: 2.731



Ver Perfil WWW
Re: [Ayuda][C++]Como hacer un chat en linux.
« Respuesta #5 en: 2 Abril 2009, 21:55 »

Excelente aporte, gracias, lastima que sea una version 15.4 totalmente desarrollada y que yo use windows :xD

Imaginate aprender a crear un navegador a partir de firefox. :xD (para mi suena loco)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(SOLUCIONADO) como hacer chat entre dos pc?
Dudas Generales
;c1v!c 10 5,360 Último mensaje 18 Febrero 2011, 22:34
por ;c1v!c
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines