C/Visual C - URGENTE: envio de .exe mediante sockets

 
Vista:

URGENTE: envio de .exe mediante sockets

Publicado por FSG (1 intervención) el 22/07/2002 11:49:33
Hola

Necesito enviar un archivo ejecutable (.exe, ejecutable en Windows NT) mediante sockets. El proceso que lo envia esta escrito en C y funciona bajo UNIX, y el que lo recibe es un proceso en Visual Basic bajo Windows NT. Lo he intentado de mil formas pero lo que obtengo no funciona.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE: envio de .exe mediante sockets

Publicado por claudio (22 intervenciones) el 12/08/2002 22:48:26
Lo más comun es que para esto estés transmitiendo de a un caractér a través del socket luego de alguna estructura de control que diga entre otras cosas la longuitud del archivo.
Aquí se te pueden presentar 2 problemas:
1) Unix y nt interpretan diferente el salto de línea(ahora no me acuerdo cual lo hace de que modo), por lo que para uno es \n y para el otro es \n\r con lo que estarías perdiendo o agregando un caracter.
2) Esto o casualidad me lo recordaron hoy. Fijate que en C cada caracter ocupa 1 byte (USASCII), en VB cada caracter ocupa 2 bytes (unicode 16 por default según me dijeron hoy)

Así que fijate que transmitis una cosa y recibis otra, si fuera solamente texto el punto 2 capaz que ni te enteras, pero al ser un archivo binario, eso pesa.
Mi consejo es que tires a la basura todo lo que tenes en VB, sobre todo si necesitas manejar strings, chars o vectores en general.
O sino, podrías crearte una DLL en C que reciba el char por el socket y lo escriba en el archivo.

Espero haber ayudado ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar