>3. para comunicar del servidor al cliente hago uso de esta >linea: write(Conexion, mensaje, sizeof(mensaje)); //la madre q funciona
Funciona porque está enviando el "0" de final de cadena también. > intente hacer esto: > char *ex[3]; > ex[0]="/bin/sh"; > ex[1]="sh"; > ex[2]=NULL; > write(Conexion, &ex, sizeof(ex)); //pero NO sirve pq solo apuntara a la > primera posicion ex[0] y al llegar al cliente me permite escribir, pero no > en el //servidor sino en el limbo Ahí está intentando enviar enviando 3 punteros por red. Creo que sizeof(ex) debería ser equivalente a sizeof(char*) * 3,y creo que no es eso lo que realmente quiere. De hecho, no está enviando los 3 punteros. Creo que hay un "&" de más en la línea write(Conexion, &ex, sizeof(ex)); Tal vez acá lo que quiere hacer es: ex[0]="/bin/sh"; ex[1]="sh"; ex[2]=""; /* cadena vacía en lugar de nulo, convertir en el otro lado */ for (i = 0; i < 3; ++ i) write(Conexion, ex[i], strlen(ex[i]) + 1); Nota: no he probado nada de lo que dice acá. Por si no la ha visto, hay una guía de sockets buena en: http://beej.us/guide/bgnet/ Con una traducción al español algo vieja. Atte, N.- -- http://arhuaco.org _______________________________________________ Lista de correo de Colibri Colibri@listas.el-directorio.org http://listas.el-directorio.org/cgi-bin/mailman/listinfo/colibri El Directorio, el sitio del Software Libre en Colombia: http://www.el-directorio.org