|
2
|
Sistemas Operativos / GNU/Linux / [Fedora] Servicio casero
|
en: 26 Mayo 2010, 01:06 am
|
Buenas noches... Hará unas semanas que creé un programa en C que tomaba capturas de la webcam (cliente) y las enviaba por internet a otro programa para su almacenamiento (servidor). El caso es que he portado el servidor a linux y mi intención es ejecutarlo en segundo plano, y esto es lo que he hecho: cp webcam /usr/sbin cd /etc/init.d touch wcam chmod +x wcam
#!/bin/sh # chkconfig: 345 90 10 # description: webcamlive # Source function library. . /etc/rc.d/init.d/functions prog=webcam softbin=/usr/sbin/$prog OPTIONS="" # Source an auxiliary options file if we have one, and pick up OPTIONS, #if [ -r /etc/sysconfig/$prog ]; then # . /etc/sysconfig/$prog #fi RETVAL=0 start() { echo -n $"Starting $prog: " daemon $softbin -d $OPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog } stop() { echo -n $"Stopping $prog: " killproc $softbin RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog } restart() { stop start } reload() { echo -n $"Reloading $prog: " killproc $softbin -HUP RETVAL=$? echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; condrestart) [ -f /var/lock/subsys/$prog ] && restart ;; status) status $softbin ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}" exit 1 esac exit $RETVAL
chkconfig --add wcam chconfig wcam on service wcam start Iniciando webcam:
El problema es que yo pensaba que ejecutaria el programa como servicio en segundo plano, y no es así, el programa se queda en "Iniciando webcam:", y funciona, pero es como si ejecutase el programa directamente desde la consola, si cierro ésta se cierra el programa.
|
|
|
3
|
Programación / Programación C/C++ / Re: [C] Envió de archivo binario por HTTP
|
en: 4 Mayo 2010, 23:45 pm
|
He aqui la solución, gracias biribau por ayudarme // create header var char *header = (char *)malloc(header_size +1); memset(header , 0x00, header_size +1); "POST %s HTTP/1.1\r\n" "Host: %s\r\n" "Content-Type: multipart/form-data; boundary=---------------------------%s\r\n" "Content-Length: %i\r\n\r\n" "-----------------------------%s\r\n" "Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n" "Content-Type: %s\r\n\r\n", path, host, boundary, content_size, boundary, varname, filename, type ); // concat file content and rest memcpy (header +x , file ,filesize ); sprintf(header +x +filesize , "\r\n-----------------------------%s\r\n", boundary );
|
|
|
5
|
Programación / Programación C/C++ / Re: [C] Envió de archivo binario por HTTP
|
en: 4 Mayo 2010, 20:53 pm
|
jaja, resulta que hará cosa de 1 año hice una funcion para codificar en base64, y adivinas que problema tuve? los null byte me cortaban la cadena -_- aunque solucionar eso es tan facil como buscar una libreria o funcion ya depurada. Pero se que esa no es la solucion correcta, ya que enviarlo en base64 es opcional, no obligatorio. De todas maneras gracias por la idea =)
a ver si se encuentra otra solucion :s
|
|
|
6
|
Programación / Programación C/C++ / [C] Envió de archivo binario por HTTP
|
en: 4 Mayo 2010, 20:09 pm
|
Buenas, llevo ya un par de años sin programar en c y ahora resulta que necesito realizar un trabajo y estoy desde ayer con el mismo problema La funcion que estoy desarrollando es sencilla en si, su misión es enviar un archivo cualquiera en forma de peticion, así un script en PHP alojado en el servidor, podrá coger el archivo. El problema lo tengo con los null bytes, al tratarse de archivos binarios (imagenes, ejecutables, etc) estos contienen nullbytes y me cortan la cadena, como primera solución opte por leer el archivo binario poco a poco e id enviandolo por partes, pero el problema, es que send, por lo que estoy observando, realiza tantas peticiones como envios se hagan, entonces, si corto el header para enviar luego el archivo, el servidor no entendera ninguna peticion, ya que estaran todas incompletas. ¿Alguna solucion/alternativa? "POST %s HTTP/1.1\r\n" "Host: %s\r\n" "Content-Type: multipart/form-data; boundary=---------------------------%s\r\n" "Content-Length: %i\r\n\r\n" "-----------------------------%s\r\n" "Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n" "Content-Type: %s\r\n\r\n" "%s" "\r\n-----------------------------%s\r\n"
Gracias y saludos!
|
|
|
9
|
Informática / Tutoriales - Documentación / ¿Cómo publico un tema?
|
en: 27 Julio 2009, 02:57 am
|
El principal motivo por el cual no se está permitido abrir un tema en este subforo es por la calidad del mismo y por otra parte, por el tema de la organización, así pues, el procedimiento a seguir para publicar un tema es el siguiente: 1. Publica el tema en el subforo correspondiente. 2. Enviar un mensaje privado al moderador de este subforo ( yeikos), estableciendo Documentación como asunto y la dirección del tema como mensaje. 3. Esperar un breve espacio de tiempo, se os enviará un mensaje privado cuando vuestro tema original se haya movido al subforo Tutoriales - Documentación.
|
|
|
10
|
Seguridad Informática / Nivel Web / Re: Intentando predecir sesiones.... ayuda!!
|
en: 17 Julio 2009, 16:24 pm
|
Vale, ya se por donde vas, pero el problema es el que te comenté, que una vez se ha iniciado una sesión, no se podrá crear otra sesion hasta que la primera sesión no haya experiado o haya sido eliminada.
PD: No se envien un mensaje a si mismo en el tuenti, no os hará gracia... xd
|
|
|
|
|
|
|