Este es el codigo del cliente donde envio el archivo (no paso la conexión y eso por que sino se hace un poco largo):
Código:
void FileSend( SOCKET sock, const char *dir )
{
int fSize = 0;
char szSize[30];
char szSend[3500];
FILE *file = fopen( "C:\\Lari\\Programacion\\Sockets\\fondo.png", "rb" );
fSize = GetFileSize( file );
printf(" Tamaño del archivo a enviar: %d\n\n", fSize );
sprintf( szSize, "%d", fSize );
send( sock, szSize, strlen(szSize), 0);
while( !feof( file ) )
{
fgets( szSend, 3500, file );
send( sock, szSend, 3500, 0 );
printf( "\tCopiando archivo....\n" );
};
fclose( file );
printf( "\n\nArchivo enviado correctamente....\n" );
}
Este es el del servidor que recive la informacion:
Código:
void FileRecive( SOCKET sock, int len )
{
char szSize[30];
char *szBuffer;
int iSize = 0;
int iRecv = 1;
FILE *file = fopen( "C:\\Lari\\Programacion\\Sockets\\fondo2.png", "wb+" );
printf( "Escribiendo archivo....\n" );
while( iSize == 0 )
{
iRecv = recv( sock, szSize, 30, 0 );
if( strlen(szSize) > 3 )
iSize = atoi( szSize );
}
printf( "Tamaño: %d", iSize );
szBuffer = new char[iSize];
do
{
if( iRecv == SOCKET_ERROR )
break;
iRecv = recv( sock, szBuffer, iSize, 0 );
fputs( szBuffer, file );
} while( iRecv != 0 );
printf( "\n\nArchivo recivido correctamente!!.\n" );
//printf( "\n\n\n ...................... \n\"%s\"\n", szRecv );
fclose( file );
}
Bueno si alguien puede saber porque se lo agradeceria mucho!
Si cometi algun error en la publicacion de este thread avisenmen porque es mi primer thread en este foro, gracias!.





Autor


En línea
