Linux - descriptor asociar socket stdin stdout

 
Vista:

descriptor asociar socket stdin stdout

Publicado por Joaquin (2 intervenciones) el 13/06/2005 06:34:01
Hola que tal.
Este foro es lo maximo. Aqui traigo una gran pregunta (que no me deja dormir todavia).

Estoy trabajando en un programa que de comunicaciones, y todo lo trabajo con sockets. Puedo abrir un programa (hijo) y utilizar el stdin y el stdout como si fuera un socket y transmitir y recibir informacion muy comodamente. Mi problema comenzo cuando queria que el padre se comunique con el hijo. El padre debe lanzar programa hijo con un exec o con un spawn (en tiempo de ejecucion) ¿como puedo rediereccionar la entrada y salida estandar de datos hacia el hijo a un descriptor en el padre (estando en el padre) para comunicarse con su hijo? tomamos en cuenta que en el hijo envia por el stdout y recibe por el stdin.

Mas o menos como esto:
$uno | dos | tres

El programa uno redirecciona su stdout al stdin del programa dos y el programa dos hace lo mismo con el programa tres. Pero esto se esta haciendo en el shell. ¿como puedo simular esto desde un programa en tiempo de ejecucion?

De antemano muchas gracias !!!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:descriptor asociar socket stdin stdout

Publicado por Joaquin (2 intervenciones) el 14/06/2005 16:50:57
Hola,

En mi investigacion, encontre que hay una herramienta con la que se puede hacer esto: dup2.

skCliente= accept( .... );

dup2( skCliente, 0 );
dup2( skCliente, 1 );
dup2( skCliente, 2 );

close( skCliente );

execv( ...... );

No he probado aun este codigo, pero "CREO" que esto va a generar algo como lo que yo quiero hacer. Solo que no termino de entender como el programa ejecutado, se reidereccionara al socket cliente.... probare y luego les digo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar