[C con Clase] red tcp

Adrián Fernández msx68k en gmail.com
Mar Jun 10 06:56:57 CEST 2014


Hola Seba.
Actualmente estoy en la misma cuestión. Estoy haciendo un servidor TCP que
recibe conexiones por un puerto y va abriendo sockets con cada uno de los
clientes q se conectan. Lo estoy pilotando bastante bien mediante la
función select() que permite esperar por alguna actividad en sockets ya
abiertos y avisar cuando pasa algo en alguno de ellos. La diferencia es que
en mi caso uso hilos en vez de procesos hijos.
Te podría dar una parte de mi código pero tendría que explicarte el porque
de cosas extrañas que terminé haciendo con el código y te la haría dificil
a cuete. Lo mejor es googlear algo como:  C TCP select() recv send   y vas
a recibir multitud de paginas donde se explica (muchas muy didacticamente)
como encarar un servidor y cliente TCP en C.  En Linux tenes las paginas de
manual que te ayudan bastante(  man select  ó  man recv  ) y en la pagina
de Microsoft (
http://msdn.microsoft.com/en-us/library/windows/desktop/ms741394%28v=vs.85%29.aspx)
también tenés mucho sobre las funciones TCP; ojo que no todo lo de MS es
compatible con Unix/Linux (sobre todo lo referente a los errores que
devuelven las funciones) pero accept() select()  recv() send() y algunas
pocas mas, sí, y está muy bien explicado.




El 9 de junio de 2014, 13:52, Sebastian Oldani <sebastianoldani en gmail.com>
escribió:

> Hola, tengo una nueva consulta, aunque escucho sugerencia de todo tipo,
> estoy programando una aplicación, básicamente un servidor TCP. Sobre linux
>
> Mi idea es hacer un servidor TCP a que se le van a conectar varios
> clientes simultáneamente.
>
> La idea es que cada vez que un cliente tenga un dato nuevo se lo envíe al
> servidor y este lo guarde. O quizá el servidor podría encuestar uno por uno
> a los clientes periódicamente (No se que es mejor, supongo que voy a
> necesitar entre 50 y 100 clientes). O mi otra opción es que la computadora
> donde guardo los datos sea un cliente y tener un servidor en cada terminal
> como es modbus por ejemplo. Además un cliente debía poder mandar un dato a
> los otros.
>
> Ese es uno de los problemas, de análisis.
>
> El otro problema es que no se muy bien como manejar el tema de los child
> de un fork().
>
> Alguien tendría un ejemplo?, estuve pensando que un sistema como un
> servidor IRC es lo que necesito, aunque más simple con un solo canal
> digamos.
>
> Se que quizás es muy genérica mi pregunta pero me gustaría escuchar
> algunas sugerencias.
>
> Gracias.
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140610/f5bff322/attachment.html>


Más información sobre la lista de distribución Cconclase