elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con transferencia de archivos en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con transferencia de archivos en C  (Leído 1,695 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
ayuda con transferencia de archivos en C
« en: 2 Noviembre 2011, 02:18 am »

hola

estoy haciendo un programa para transferencia de archivos pero tengo unos problemas, a ver si alguien me puede ayudar

tengo el clasico cliente - servidor, el cliente me funciona perfectamente en linux pero a la hora de compilarlo en windows deja de funcionar y no tengo idea que podria ser

antes sabia como hacer transferencia en VB pero cuando inicie en C se me complicaron unas cosas, una de ellas fue como enviar la longitud del archivo a enviar

descubri hace poco que para eso se podia utilizar "htonl", cuando lo mando hago esto

Código
  1. longList = htonl(tam);

pero, al recibirlo lo pongo de esta manera en linux

Código
  1. recv(socket, (char *)buff, sizeof(long), 0);
  2. longbites = ntohl(*((long*) buff));

 y me funciona bien, pero a la hora de usarlo en windows me da un mensaje de error "xxxxxxxxxh el programa no puede "read", al principio crei que era por "fread" pero cuando quite esta parte del codigo, no me volvio a salir ese mensaje, pero como quite esa parte del codigo no obtuvo nada de datos

tenia entendido que tengo que desreferenciar buff, para que no convierta "ntohl" la direccion y el valor, y de esa manera solo se convierte el puro valor y como mencione, en linux, el cliente recibe la longitud bien, pero en windows me aparece un error, alguien sabe porque u otra manera de
hacerlo?

quedaria algo parecido la parte que en windows no funciona

Código
  1. while((connect(s, (struct sockaddr*)&cliente, tam)) < 0){
  2. printf("error connect");
  3. exit(1);
  4. }
  5.  
  6. recv(s, (char *)buff, sizeof(long), 0);
  7. longbites = ntohl(*((long*) buff));
  8.  
  9. FILE * fup = fopen("arreglo_transf.txt","wb");
  10.  
  11. if(longbites >= 0){
  12.  
  13.  
  14. while (i < longbites){
  15.  
  16. resiv = recv(s, buff, sizeof(buff), 0);
  17.  


Y tengo otra duda, tengo el cliente en linux por el momento y el servidor en windows, pero alguien sabe como puedo reiniciar o borrar datos de los sockets, porque me conecto y se me manda el archivo bien, pero a la hora de volver a descargarlo ya no se descarga nada.

en el servidor le puse un printf y alli cuando me vuelvo a conectar me aparece correcto la longitud del archivo, pero en el cliente le puse otro printf, para revisar como va la transferencia y me va mostrando "4 bytes enviados... etc" y la primera vez que lo hago me aparecen los datos bien, pero si lo vuelvo a ejecutar solo me aparece el archivo pero sin nada e incluso el cliente me dice "0 bytes enviados"

y en el servidor como les mencione, me aprecen las veces que lo intento la longitud del archivo pero no me manda nada, tengo que cerrar el servidor y volverlo a abrir, asi que la reconexion no creo que sea el problema, y la lectura del archivo me imagino que tampoco, pero no se manda ya nada despues desde el segundo intento

espero alguien me pueda ayudar con esto, salu2
 


« Última modificación: 3 Noviembre 2011, 09:27 am por Belial & Grimoire » En línea

.                                 
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Transferencia de archivos, AYUDA « 1 2 »
Programación Visual Basic
Kizar 13 5,067 Último mensaje 26 Agosto 2005, 13:18 pm
por programatrix
Transferencia de archivos
Programación Visual Basic
leoleoleo17 2 1,882 Último mensaje 13 Diciembre 2005, 14:54 pm
por Kizar
Ayuda: Detectar Transferencia de archivos
Programación Visual Basic
Vampersy 0 1,080 Último mensaje 26 Marzo 2008, 01:05 am
por Vampersy
[Ayuda] Bypass Transferencia de Creditos IMVU
Dudas Generales
Yoker66666 0 1,958 Último mensaje 14 Julio 2012, 14:31 pm
por Yoker66666
ayuda de Uso de formularios para transferencia en php
Dudas Generales
lnieto44 0 3,671 Último mensaje 8 Junio 2016, 20:38 pm
por lnieto44
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines