• Jueves 14 de Noviembre de 2024, 16:55

Autor Tema:  Enviar Y Recibir Cualquier Archivos  (Leído 5065 veces)

GonzaloB

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Enviar Y Recibir Cualquier Archivos
« en: Sábado 11 de Junio de 2005, 19:22 »
0
:D Cree un software Cliente-Servidor en C++BUILDER 5.
Uso los componentes TNMStrmServ y TNMStrm para enviar y recibir archivos.
Lo que necesito saber es como mandar cualquier tipo de archivos
desde el Cliente al Servidor y viseversa, y que el programa que lo
reciba lo guarde con el nombre y la extensión que corresponde
, por ej.:
Si el Cliente manda un archivo Notas.doc, el Servidor lo guarde
como Notas.doc, tal cual, en una dirección que yo seleccione al momento o en
otra previamente seleccionada, tipo Msn
Y lo mismo para cualquier archivo.
Yo solo puedo mandar imagenes .bmp, pero no se como identificarlo
en el otro programa para guardarlo, ya sea con su nombre original o
poder asignarle uno yo. Pero como mencioné antes, quisiera poder mandar cualquier tipo de archivos, identificarlo y guardarlo.
El programa el Cliente-Servidor según se prefiera, pero debere hacer un Cliente y un Servidor por Separado.
En resúmen, si tenés un ej. a mano sobre como mandar cualquier tipo de archivos
vía Sockets, guardarlo tal cual se los agradecería un montón. :(

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Enviar Y Recibir Cualquier Archivos
« Respuesta #1 en: Miércoles 15 de Junio de 2005, 19:09 »
0
hola, ya te respondi más atras, todo tanto el envio del archivo como el envio del nombre del archivo y etc.. debe hacerse a traves de los sockets.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

GonzaloB

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Enviar Y Recibir Cualquier Archivos
« Respuesta #2 en: Miércoles 22 de Junio de 2005, 01:40 »
0
Gracias JuanK por las respuesta, pero eso ya lo había pensado.
Lo traté de aplicar mandando por sockets el nombre del archivo, su extensión y su path, y el archivo por supuesto.
El problema es que cuando lo recibe el otro programa deja de responder y tengo que reiniciar la PC.

Creo que se debe a que el nombre o el archivo mismo llega a destiempo y se produce un error.

Me gustaría que me mandaran código de como lo harían Uds para saber en que fallo yo o conocer otras alternativas.

Gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Enviar Y Recibir Cualquier Archivos
« Respuesta #3 en: Miércoles 22 de Junio de 2005, 04:28 »
0
no tengo codigo de C++ ni de C lo suficientemente sencillo como para que lo entiendas, es decri es que he ehcho cosas pero mumcho mas complicadas que solo enviar el archivo, de heco lo que hice en C fue abrir tres hilos cada hilo colocarlo en una posicion determinada del archivo y de ahi enviar en paralelo cada segmento de archivo a tres estaciones diferentes dentro de una red, y por supueso el proceso inverso een el cual hay un socket en cada hilo y cada uno en paralelo comienza a reconstruirr la parte del arcjhivo de manera local..

Como vez si se puede hacer, debes tener problemas en el accept o algo asi por estilo , lo mejor es que antes de enviar el archivo hagas pruebas enviando mensajes de varios tipos diferentes y luego cuando ya tengas un poco de practica le sumas en el envio del archivo.

Por cierto ahora que recuerdo no es bueno que envies todo el archivo con una sola instruccion sino que debes enviar pequeñas tramas cada vez, lo recomendado es enviar tramas de 512 K aprox. y las vas ensamblando en el cliente.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

GonzaloB

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Enviar Y Recibir Cualquier Archivos
« Respuesta #4 en: Miércoles 22 de Junio de 2005, 16:13 »
0
Gracias de nuevo JuanK.
Pero me podrias enviar el código que tienes al menos, soy bueno entendiendo lo que no. De todas formas al menos explic,andome como enviar 512 kb por vez, hace poco comencé a programar este tipo de software (enviar archivos en LAN) y bueno.
Una pregunta, ¿Eres Ingeniero de Sistemas?, pues yo estudio esa carrera.
¿Que edad tienes, a que edad te recibiste, como van las cosas por allá con respecto a ea carrera, hay trabajo?.
Soy de Argentina y la mayoría cambia de País al recibirse.

Muchas Gracias juank

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Enviar Y Recibir Cualquier Archivos
« Respuesta #5 en: Miércoles 22 de Junio de 2005, 17:03 »
0
hola
no te envio fuentes porque la verdad no te seria de utilidad, sos fuentes fueron implementados bajo plataforma UNIX en len guaje c y los hice en la epoca en que no proramaba muy bien asi que son incompresibles aun para mi.

la idea es muy sencilla
ejemplo en algo parecido a pseudocodigo:
Código: Text
  1.  
  2. //servidor
  3. //enviar nombre de archivo
  4. enviar(nombreArchivo);
  5. //enviar tamaño de archivo
  6. enviar(tamano);
  7. for(...,...,...)
  8. {
  9.   //leer un pedazo del archivo
  10.   fread(buffer, 512,1,archivo);
  11.  ...
  12.  ...
  13.   enviar(tamanobufferbytes)
  14.   if (tamanobufferbytes =0)
  15.     break;
  16.   else
  17.   enviar(buffer);
  18. }
  19.  
  20.  

esa es la idea general y el cliente:
Código: Text
  1.  
  2. //cliente
  3. //enviar nombre de archivo
  4. recibir(nombreArchivo);
  5. crearArchivo(nombreArchivo);
  6. //recibir tamaño de archivo
  7. recibir(tamano);
  8. for(...,...,...)
  9. {
  10.   //recibir tamano de bytesque se recibiran para el archivo
  11.   recibir(tamanobufferbytes);
  12.   //recibir el segmento de archivo
  13.   recibir(buffer);
  14.   //escribir un pedazo del archivo
  15.   fwrite(buffer, 512,1,archivo);
  16.  ...
  17.  ...
  18.   if (tamanobufferbytesAcumulado =tamano)
  19.     break;
  20.  
  21. }
  22.  
  23.  

Aca si hay m,ucho trabajo para Ingenmieros pero solo para los buenos ingenieros, ya que de igual manera hay personas que son ingenieros y no consiguen trabajo nunca y los ve uno manejando taxis tiendas etc... o desempleados pero si eres bueno simpre tendras trabajo..

tengo incluso compañeros de la universidad trabajan do en servicios de vigilancia, lo cual no tiene nada de malo sino hasta cuando se piensa en el dinero y el tiempo invertido en una carrera profesional...
y esto es por que no consiguen trabajo...

Sin embargo algunos ( entre los cuales nos encontramos mi hermano y yo) siempre nos hacen ofertas de trabajo y cada vez que hemos cambiado de trabajo ha sido porque nos han ofrecido el 70% o más de dinero en un trabajo diferente y permanentemente estamos recibiendo ofertas que a veces tenemos que rechazar...

Asi que los que aca no consiguen es porque no se preocuparon por prepararse bien profesionalmente, intelectualmente y socialmente.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io