Ayuda envío archivo a web con C vía http

Iniciado por Kaxperday, 20 Julio 2014, 12:23 PM

0 Miembros y 3 Visitantes están viendo este tema.

Kaxperday

Quiero enviar un archivo mediante HTTP a una web, que recoje las variables desde la url con un script en php, el cliente debe enviar un archivo cifrado e ir cargándolo en las variables poco a poco, hay que usar sockets en C para windows pero no encuentro  los apuntes adecuados, e buscado y no encuentro nada, ¿se os ocurre algo?

Ayuda por favor es un proyecto importante, confio en vosotros.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

ivancea96

1: abrir socket TCP conectándolo con el servidor.
2: enviar la petición http POST, con el archivo.

¿Cuál no consigues hacer

Kaxperday

#2
Como hago los sockets para enviar el HTTP POST en C, yo se abrir sockets con windows, conecto al servidor web puerto 80, y entonces como hago para subir el archivo, necesito apuntes o código, la idea es subir archivo mediante POST interactuando con server web que recoje variables desde la URL con php, pero no se como lanzar esas variables al servidor en plan :

miweb.com/index.php?var=pass&wew=232323

Por ejemplo, como hago un codigo en C suponiendo sockets abiertos y conectado correctamente para enviar esto a una web

edito: pasame los apuntes para aprender a como hacerlo si no te importa o alguna ayuda no me vendria mal, quiero hacerlo, gracias
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

ivancea96

El POST es así:
POST url HTTP/1.1\r\n
...\r\n
...\r\n
content-length:XXXX\r\n
...\r\n
\r\n    //este salto de línea marca el final de la cabecera
var=datos&var2=datos2


XXXX vendría siendo el tamaño del cuerpo, que es todo lo que hay después del último salto de línea de la cabecera.
\r\n es el salto de línea completo.

Subir un archivo, es poner var=datos_del_archivo. Recuerda abrir el archivo en binario.

Creo que no se me olvida nada xD Prueba primero a hacerlo con una simple cadena, y luego ya lo haces con archivos

No se que tal entendiste. Tú dirás :o

xustyx

Seguramente digo una locura por que no tengo ni idea de C pero supongo que debe existir alguna librería para facilitar eso por ejemplo Curl.

ivancea96

Haberlas las hay. Pero hacer peticiones es sencillo. Ni hace falta usar una librería xD

xustyx

Lo sé pero tiene pinta de no saber crearlas.

naderST


Kaxperday

Cita de: ivancea96 en 20 Julio 2014, 13:43 PM
El POST es así:
POST url HTTP/1.1\r\n
...\r\n
...\r\n
content-length:XXXX\r\n
...\r\n
\r\n    //este salto de línea marca el final de la cabecera
var=datos&var2=datos2


ok, que funcion debería de usar para mandar esta cadena?
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

ivancea96

Lo envías por un socket que tengas abierto al servidor.
Tras enviarlo, ponte a recibir hasta que recibas toda la respuesta del servidor.