|
721
|
Programación / Programación C/C++ / Devolver cadena con función
|
en: 5 Agosto 2014, 22:39 pm
|
Bueno este tema es un clásico, pero no consigo devolver la cadena o no la muestra haber si sabéis algo: #include <stdio.h> #include <stdlib.h> #include <string.h>
char* crenombre();
int main() { char *nombre=NULL; nombre=creanombre(); printf(":%s.",nombre); }
char* creanombre() { int i; char nombre[100]; srand(time(NULL)); for(i=0;i<13;i++) { nombre[i]=(48+rand()%(57-48)+1); } return nombre; }
El programa no muestra el nombre en el prinf que puede fallar? Gracias.
|
|
|
722
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 30 Julio 2014, 16:08 pm
|
Curioso, entonces como propones enviar el archivo a la vez que lo lees sin guardar lo que lees en variables. Es decir yo solo se subir variables con POST, para subir un archivo tendría que subir o una variable cargadísima con todo su contenido, o bien varias con poco contenido, pero haciendo varios POST, es eso correcto? Si a lo que te referias no es a ninguna de las 2 anteriores me gustaría conocer tu idea.
|
|
|
724
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 30 Julio 2014, 12:02 pm
|
Supongo que esto debería funcionar: archivo=fopen("archivito.txt","rt"); while (fgets(cod, 100, archivo) != NULL) { strcpy(ced,""); strcat(ced,"nombre=archivo&contenido="); strcat(ced,cod); len=strlen(ced); itoa(len,cad,10); strcpy(buffer,"POST /script.php HTTP/1.0\r\n"); strcat(buffer,"Host: mipagina.com\r\n"); strcat(buffer,"Content-type: application/x-www-form-urlencoded\r\n"); strcat(buffer,"Content-length: "); strcat(buffer,cad); strcat(buffer,"\r\n\r\n"); strcat(buffer,ced); printf("%s\n",buffer); if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1) { printf("\nError al conectar.\n"); exit(0); } printf("\nConectado correctamente.\n");
if((send(sock,buffer,strlen(buffer),0))==-1) { printf("Error Send.\n"); exit(0); } } Que vaya enviando POST con el contenido del archivo hasta que se acabe, aunque no se como funciona pues no me va a mi el programa, lo que le falta es control de errores, puede que falle un POST en algún momento, y no se tiene en cuenta, por lo demás bien.
|
|
|
726
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 29 Julio 2014, 20:18 pm
|
mmm pero si el archivo tiene más caracteres de los que la URL tiene por límite?, cuando hacia get escribiendo las variables en navegador había limite.
ok saco los bytes del archivo, los paso al content length, pero no he entendido eso de abrir el archivo en stream xD lo demás si.
Edito: te refieres a meter todo el contenido del archivo en la cadena?. Otra cosilla caracteres como por ejemplo un espacio tendría que enviarlo como %24 no? gracias
|
|
|
727
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 29 Julio 2014, 19:28 pm
|
Ahhh me alegra oír eso, yo uso codeblocks que usa gcc compiler, puede que sea algo del firewall etc, probare a meter el programa en otro ordenador haber si le funciona. Ahora bien, ya esta resuelto algo de vital importancia, como es enviar variables, ahora la idea de subir archivos como sería no hay alguna cabecera para mandar archivo directamente añadiendo algún campo en la cebecera, o tengo que ir cargando variables y subiendolas poco a poco, además como puedo controlar si hay posibles errores, me vendría muy bien saber algo de esto, muchas gracias. PD: Ya os comentaré si me funcionó en otro ordenador. PD: MIL gracias ivancea
|
|
|
728
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 29 Julio 2014, 13:43 pm
|
Respecto a lo de minosfour si que funciona el php correctamente, no es necesario hacer eso, pues antes con escribir las variables en el navegador creaba el archivo y todo bien solo que ahora cambié GET por POST lo demás es igual, debería ir.
Ivancea a ti te funciono con esos 3 campos solo?, probé a descargar el WPE y al descargar me salio como archivo malicioso, desde la página web del autor, no sé lo que está claro es que no se realiza correctamente el POST algo pasa desapercibido en el cliente, pues busqué con wireshark los POST y efectivamente conectaba a la IP de la web pero no estaba la cabecera en ningún paquete, sin embargo en otros POST no relacionados si aparecía. Que puede fallar en ese programa en C me pregunto.
|
|
|
729
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 29 Julio 2014, 01:38 am
|
He cargado mi página con el mozilla y no me muestra nada elhttpheaders xD, de todas formas es normal pues tendremos que forzar la interacción y eso yo no se como hacerlo según dijiste parece que se puede hacer con el programa pero yo no se como usarlo, sería pasarle unas variables con POST a la página con el programa y leer la cabecera que mete, bueno hasta mañana se seguirá en ello gracias.
|
|
|
730
|
Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http
|
en: 29 Julio 2014, 01:15 am
|
Aaaaamigo ya se porque no las veía porque la extensión lo que hace es mostrarte lost GET y POST que se realizan en el navegador, es decir hay que cargar al menos páginas para que aparezcan esas cabeceras, me fui a hotmail.com por ejemplo y me salieron muuchos POST y GET como cosa mala, aquí pique uno: POST / HTTP/1.1 Host: ocsp.digicert.com User-Agent: Mozilla/5.0 (Windows XX 9.5; WOW64; rv:29.0) Gecko/20100101 Firefox/28.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Length: 115 Content-Type: application/ocsp-request Connection: keep-alive 0q0o0M0K0I0 + Lo que hace darme cuenta de que parece que sea necesario cosas como el agente de navegación, idioma, y demás de todas formas este que he pillado no es de "application/x-www-form-urlencoded" asi que no creo que tenga que ser en lo demás igual, bueno sigo indagando. Edito: Nótese que esta linea: Nosotros teníamos POST /script.php HTTP/1.1 Haciendo referencia al archivo que ejecutará el php, allí no hace referencia a nada, quizás sea index.php por defecto, sino que php recogerá sus variables. Edito: Acabo de usar el programa que muestra los GET y POST que me dijiste en en el mozilla xD, y probé con una busqueda en google, entonces mostraba las cabecera, wireshark también las mostraba, pero cuando ejecuto mi programa no aparece la cabecera por ningún lado. Raro.
|
|
|
|
|
|
|