Salida de stdout de un socket a otro

Iniciado por pacosn1111, 19 Mayo 2016, 19:23 PM

0 Miembros y 1 Visitante están viendo este tema.

pacosn1111

Hola a todos de nuevo, estoy haciendo un pequeño programa que lanza comandos remotos, funciona bastante bien, solo quiero que cuando hago un ls o cualquier comando, la salida se redireccione para que desde el otro lado la pueda leer, no se por donde empezar.

Saludos.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

pacosn1111

Cita de: engel lex en 19 Mayo 2016, 19:47 PM
no tenías un proyecto ya con sockets?

Sí pero solo era un pequeño code para probar la libreria que habria escrito, ahora que ya funciona, estoy intentando crear una especie conexion shell remota y no se como redireccionar el stdout por el socket para verlo desde el otro lado.

ivancea96

En caso de Windows, podrías crear un proceso y redireccionar los flujos para captarlos con tu programa. Luego, los envías si quieres por sockets, o lo que quisieras.
Creating a Child Process with Redirected Input and Output

En caso de Linux, ahí ya no sé. En el peor de los casos, puedes hacer un system redirigiendo la salida a un archivo con ">archivo" en el comando. Luego, leer el archivo. Sería lo más terco, pero funcional.

Si te quieres centrar en el envío por socket, puedes separar fácilmente el programa principal de la captación de la salida del comando, y ya en un futuro, hacerlo como mejor te convenga.

Arkangel_0x7C5

En el caso de linux tendrias que hacer un fork, usar dup2 para cambiar los descriptores de los ficheros de stdout por los de los socket y luego exec para ejecutar el comando que tu quieras

Saludos ark