Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Nanoc en 13 Mayo 2010, 18:47 pm



Título: Programacion de servicios en red C++
Publicado por: Nanoc en 13 Mayo 2010, 18:47 pm
Hola, buenas, me propongo programar un servicio y me vienen dos problemas desde el principio.

1º Cual es la forma apropiada de establecer los sockets de modo que pueda atender a un indeterminado numero de personas y todo por el mismo puerto tcp?

2º Lo mismo pero para realizar consultas a bases de datos

Espero que alguien pueda ayudarme  ;D



Título: Re: Programacion de servicios en red C++
Publicado por: biribau en 13 Mayo 2010, 19:39 pm
A que te refieres con servicio? un servicio típico de escuchar en un puerto? para atender a varias lo mejor es que un hilo acepte conexiones y cuando entre una, cree un hilo trabajador que provea del servicio. También se puede hacer monohilo más difícil con espera no bloqueante y con una cola de eventos o alguna otra especie de context switch(o hilos) implementado a mano.


Título: Re: Programacion de servicios en red C++
Publicado por: Nanoc en 13 Mayo 2010, 21:49 pm
Eso puedo hacerlo con winsock? hay que hacer algo distinto que poner un solo socket, es decir, creo un socket y en cuanto se conecte alguien creo otro y lo pongo a la esucha?


Título: Re: Programacion de servicios en red C++
Publicado por: biribau en 13 Mayo 2010, 22:08 pm
Sí, sería algo así como:
Código:
while True:
       conexion = accept(socket)
       start_thread(worker, conexion)


Título: Re: Programacion de servicios en red C++
Publicado por: Nanoc en 16 Mayo 2010, 14:48 pm
y no tendre problemas al crear todos los sockets en el mismo puerto?


Título: Re: Programacion de servicios en red C++
Publicado por: biribau en 17 Mayo 2010, 19:19 pm
No, porque una conexión TCP está identificada por 2 IP y 2 puertos, 1 puerto siempre es el mismo(el tuyo), pero el otro no.


Título: Re: Programacion de servicios en red C++
Publicado por: Nanoc en 19 Mayo 2010, 00:49 am
entiendo, de todos modos si alguien pudiera enseñarme algun codigo donde se vea la estructura que tomarian los sockets se lo agradeceria mucho


Título: Re: Programacion de servicios en red C++
Publicado por: dof en 20 Mayo 2010, 14:40 pm
Te recomiendo que busques en google la guia beej, te explican todo telacionado con lo sockets